]> git.lizzy.rs Git - plan9front.git/commitdiff
cmd/sam: Remove 256 character Plan 9 command output limit sam
authorElias Fleckenstein <fleckenstein@elidragon.com>
Tue, 31 Aug 2021 12:48:19 +0000 (12:48 +0000)
committerElias Fleckenstein <fleckenstein@elidragon.com>
Tue, 31 Aug 2021 12:48:19 +0000 (12:48 +0000)
sys/src/cmd/sam/shell.c

index fe8f859cb3d1e73cc9f2125bb1bdffd32daf0cd6..4b912de32af498fa38e5ae3dac8faf5add78da1b 100644 (file)
@@ -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