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

Diff for /src/usr.bin/cvs/cvs.c between version 1.132 and 1.133

version 1.132, 2007/09/10 10:29:12 version 1.133, 2007/09/19 11:53:27
Line 394 
Line 394 
 static void  static void
 cvs_read_rcfile(void)  cvs_read_rcfile(void)
 {  {
         char rcpath[MAXPATHLEN], linebuf[128], *lp, *p;          char rcpath[MAXPATHLEN], *buf, *lbuf, *lp, *p;
         int i, linenum;          int i, linenum;
         size_t len;          size_t len;
         struct cvs_cmd *cmdp;          struct cvs_cmd *cmdp;
Line 416 
Line 416 
                 return;                  return;
         }          }
   
         while (fgets(linebuf, (int)sizeof(linebuf), fp) != NULL) {          lbuf = NULL;
                 linenum++;          while ((buf = fgetln(fp, &len)) != NULL) {
                 if ((len = strlen(linebuf)) == 0)                  if (buf[len - 1] == '\n') {
                         continue;                          buf[len - 1] = '\0';
                 if (linebuf[len - 1] != '\n') {                  } else {
                         cvs_log(LP_ERR, "line too long in `%s:%d'", rcpath,                          lbuf = xmalloc(len + 1);
                                 linenum);                          memcpy(lbuf, buf, len);
                         break;                          lbuf[len] = '\0';
                           buf = lbuf;
                 }                  }
                 linebuf[--len] = '\0';  
   
                   linenum++;
   
                 /* skip any whitespaces */                  /* skip any whitespaces */
                 p = linebuf;                  p = buf;
                 while (*p == ' ')                  while (*p == ' ')
                         p++;                          p++;
   
Line 462 
Line 464 
                         cmdp->cmd_defargs = xstrdup(lp);                          cmdp->cmd_defargs = xstrdup(lp);
                 }                  }
         }          }
           if (lbuf != NULL)
                   xfree(lbuf);
   
         if (ferror(fp)) {          if (ferror(fp)) {
                 cvs_log(LP_NOTICE, "failed to read line from `%s'", rcpath);                  cvs_log(LP_NOTICE, "failed to read line from `%s'", rcpath);

Legend:
Removed from v.1.132  
changed lines
  Added in v.1.133