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

Diff for /src/usr.bin/less/line.c between version 1.6 and 1.7

version 1.6, 2003/06/18 18:39:52 version 1.7, 2004/04/08 15:18:28
Line 79 
Line 79 
         static int          static int
 expand_linebuf()  expand_linebuf()
 {  {
         int new_size = size_linebuf + LINEBUF_SIZE;          int new_size = size_linebuf * 2;
         char *new_buf = (char *) calloc(new_size, sizeof(char));          char *new_buf = (char *) realloc(linebuf, new_size);
         char *new_attr = (char *) calloc(new_size, sizeof(char));          char *new_attr = (char *) realloc(attr, new_size);
         if (new_buf == NULL || new_attr == NULL)          if (new_buf == NULL || new_attr == NULL)
         {          {
                 if (new_attr != NULL)                  if (new_attr != NULL)
Line 90 
Line 90 
                         free(new_buf);                          free(new_buf);
                 return 1;                  return 1;
         }          }
         memcpy(new_buf, linebuf, size_linebuf * sizeof(char));          memset(new_buf + size_linebuf, 0, new_size - size_linebuf);
         memcpy(new_attr, attr, size_linebuf * sizeof(char));          memset(new_attr + size_linebuf, 0, new_size - size_linebuf);
         free(attr);  
         free(linebuf);  
         linebuf = new_buf;          linebuf = new_buf;
         attr = new_attr;          attr = new_attr;
         size_linebuf = new_size;          size_linebuf = new_size;

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7