[BACK]Return to read.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tail

Diff for /src/usr.bin/tail/read.c between version 1.2 and 1.3

version 1.2, 1996/06/26 05:40:16 version 1.3, 1997/01/12 23:43:06
Line 46 
Line 46 
   
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
 #include <fcntl.h>  
   #include <err.h>
 #include <errno.h>  #include <errno.h>
 #include <unistd.h>  #include <fcntl.h>
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   #include <unistd.h>
   
 #include "extern.h"  #include "extern.h"
   
 /*  /*
Line 75 
Line 78 
         char *sp;          char *sp;
   
         if ((sp = p = malloc(off)) == NULL)          if ((sp = p = malloc(off)) == NULL)
                 err(1, "%s", strerror(errno));                  err(1, NULL);
   
         for (wrap = 0, ep = p + off; (ch = getc(fp)) != EOF;) {          for (wrap = 0, ep = p + off; (ch = getc(fp)) != EOF;) {
                 *p = ch;                  *p = ch;
Line 116 
Line 119 
         } else {          } else {
                 if (wrap && (len = ep - p))                  if (wrap && (len = ep - p))
                         WR(p, len);                          WR(p, len);
                 if (len = p - sp)                  if ((len = p - sp))
                         WR(sp, len);                          WR(sp, len);
         }          }
 }  }
Line 142 
Line 145 
                 char *l;                  char *l;
         } *lines;          } *lines;
         register int ch;          register int ch;
         register char *p;          register char *p = NULL;
         int blen, cnt, recno, wrap;          int blen, cnt, recno, wrap;
         char *sp;          char *sp = NULL;
   
         if ((lines = malloc(off * sizeof(*lines))) == NULL)          if ((lines = calloc(off, sizeof(*lines))) == NULL)
                 err(1, "%s", strerror(errno));                  err(1, NULL);
   
         sp = NULL;  
         blen = cnt = recno = wrap = 0;          blen = cnt = recno = wrap = 0;
   
         while ((ch = getc(fp)) != EOF) {          while ((ch = getc(fp)) != EOF) {
                 if (++cnt > blen) {                  if (++cnt > blen) {
                         if ((sp = realloc(sp, blen += 1024)) == NULL)                          if ((sp = realloc(sp, blen += 1024)) == NULL)
                                 err(1, "%s", strerror(errno));                                  err(1, NULL);
                         p = sp + cnt - 1;                          p = sp + cnt - 1;
                 }                  }
                 *p++ = ch;                  *p++ = ch;
Line 164 
Line 166 
                                 lines[recno].blen = cnt + 256;                                  lines[recno].blen = cnt + 256;
                                 if ((lines[recno].l = realloc(lines[recno].l,                                  if ((lines[recno].l = realloc(lines[recno].l,
                                     lines[recno].blen)) == NULL)                                      lines[recno].blen)) == NULL)
                                         err(1, "%s", strerror(errno));                                          err(1, NULL);
                         }                          }
                         bcopy(sp, lines[recno].l, lines[recno].len = cnt);                          memcpy(lines[recno].l, sp, (lines[recno].len = cnt));
                         cnt = 0;                          cnt = 0;
                         p = sp;                          p = sp;
                         if (++recno == off) {                          if (++recno == off) {

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3