diff options
author | Elias Fleckenstein <fleckenstein@elidragon.com> | 2021-08-31 12:48:19 +0000 |
---|---|---|
committer | Elias Fleckenstein <fleckenstein@elidragon.com> | 2021-08-31 12:48:19 +0000 |
commit | bc2c0ce3e6e221bcd3cc2297e68353690d231a87 (patch) | |
tree | aebdd2d72225e528575e14011de375947aedb281 | |
parent | 49b5319f761e2de848d35361a507a5af8b6eb1ed (diff) | |
download | plan9front-bc2c0ce3e6e221bcd3cc2297e68353690d231a87.tar.xz |
cmd/sam: Remove 256 character Plan 9 command output limitsam
-rw-r--r-- | sys/src/cmd/sam/shell.c | 15 |
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 |