summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElias Fleckenstein <fleckenstein@elidragon.com>2021-08-31 12:48:19 +0000
committerElias Fleckenstein <fleckenstein@elidragon.com>2021-08-31 12:48:19 +0000
commitbc2c0ce3e6e221bcd3cc2297e68353690d231a87 (patch)
treeaebdd2d72225e528575e14011de375947aedb281
parent49b5319f761e2de848d35361a507a5af8b6eb1ed (diff)
downloadplan9front-bc2c0ce3e6e221bcd3cc2297e68353690d231a87.tar.xz
cmd/sam: Remove 256 character Plan 9 command output limitsam
-rw-r--r--sys/src/cmd/sam/shell.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/src/cmd/sam/shell.c b/sys/src/cmd/sam/shell.c
index fe8f859cb..4b912de32 100644
--- a/sys/src/cmd/sam/shell.c
+++ b/sys/src/cmd/sam/shell.c
@@ -172,18 +172,23 @@ checkerrs(void)
int f, n, nl;
char *p;
long l;
+ long r;
+
+ r = 0; // total amount of characters read
+ nl = 3; // maximum number of newlines
if(statfile(errfile, 0, 0, 0, &l, 0) > 0 && l != 0){
if((f=open((char *)errfile, 0)) != -1){
- if((n=read(f, buf, sizeof buf-1)) > 0){
- for(nl=0,p=buf; nl<3 && p<&buf[n]; p++)
+ while (r<l-1 && nl>0 && (n=read(f, buf, sizeof buf-1)) > 0) {
+ for(p=buf; nl>0 && p<&buf[n]; p++)
if(*p=='\n')
- nl++;
+ nl--;
+ r += n;
*p = 0;
dprint("%s", buf);
- if(p-buf < l-1)
- dprint("(sam: more in %s)\n", errfile);
}
+ if (r<l-1)
+ dprint("(sam: more in %s)\n", errfile);
close(f);
}
}else