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

Diff for /src/usr.bin/cvs/rcs.c between version 1.98 and 1.99

version 1.98, 2005/11/09 15:42:58 version 1.99, 2005/11/12 21:34:48
Line 42 
Line 42 
 #include "log.h"  #include "log.h"
 #include "rcs.h"  #include "rcs.h"
 #include "diff.h"  #include "diff.h"
 #include "strtab.h"  
   
 #define RCS_BUFSIZE     16384  #define RCS_BUFSIZE     16384
 #define RCS_BUFEXTSIZE  8192  #define RCS_BUFEXTSIZE  8192
Line 391 
Line 390 
         while (!TAILQ_EMPTY(&(rfp->rf_access))) {          while (!TAILQ_EMPTY(&(rfp->rf_access))) {
                 rap = TAILQ_FIRST(&(rfp->rf_access));                  rap = TAILQ_FIRST(&(rfp->rf_access));
                 TAILQ_REMOVE(&(rfp->rf_access), rap, ra_list);                  TAILQ_REMOVE(&(rfp->rf_access), rap, ra_list);
                 cvs_strfree(rap->ra_name);                  free(rap->ra_name);
                 free(rap);                  free(rap);
         }          }
   
Line 399 
Line 398 
                 rsp = TAILQ_FIRST(&(rfp->rf_symbols));                  rsp = TAILQ_FIRST(&(rfp->rf_symbols));
                 TAILQ_REMOVE(&(rfp->rf_symbols), rsp, rs_list);                  TAILQ_REMOVE(&(rfp->rf_symbols), rsp, rs_list);
                 rcsnum_free(rsp->rs_num);                  rcsnum_free(rsp->rs_num);
                 cvs_strfree(rsp->rs_name);                  free(rsp->rs_name);
                 free(rsp);                  free(rsp);
         }          }
   
Line 407 
Line 406 
                 rlp = TAILQ_FIRST(&(rfp->rf_locks));                  rlp = TAILQ_FIRST(&(rfp->rf_locks));
                 TAILQ_REMOVE(&(rfp->rf_locks), rlp, rl_list);                  TAILQ_REMOVE(&(rfp->rf_locks), rlp, rl_list);
                 rcsnum_free(rlp->rl_num);                  rcsnum_free(rlp->rl_num);
                 cvs_strfree(rlp->rl_name);                  free(rlp->rl_name);
                 free(rlp);                  free(rlp);
         }          }
   
Line 419 
Line 418 
         if (rfp->rf_path != NULL)          if (rfp->rf_path != NULL)
                 free(rfp->rf_path);                  free(rfp->rf_path);
         if (rfp->rf_comment != NULL)          if (rfp->rf_comment != NULL)
                 cvs_strfree(rfp->rf_comment);                  free(rfp->rf_comment);
         if (rfp->rf_expand != NULL)          if (rfp->rf_expand != NULL)
                 cvs_strfree(rfp->rf_expand);                  free(rfp->rf_expand);
         if (rfp->rf_desc != NULL)          if (rfp->rf_desc != NULL)
                 cvs_strfree(rfp->rf_desc);                  free(rfp->rf_desc);
         free(rfp);          free(rfp);
 }  }
   
Line 734 
Line 733 
                 return (-1);                  return (-1);
         }          }
   
         ap->ra_name = cvs_strdup(login);          ap->ra_name = strdup(login);
         if (ap->ra_name == NULL) {          if (ap->ra_name == NULL) {
                 cvs_log(LP_ERRNO, "failed to duplicate user name");                  cvs_log(LP_ERRNO, "failed to duplicate user name");
                 free(ap);                  free(ap);
Line 770 
Line 769 
         }          }
   
         TAILQ_REMOVE(&(file->rf_access), ap, ra_list);          TAILQ_REMOVE(&(file->rf_access), ap, ra_list);
         cvs_strfree(ap->ra_name);          free(ap->ra_name);
         free(ap);          free(ap);
   
         /* not synced anymore */          /* not synced anymore */
Line 809 
Line 808 
                 return (-1);                  return (-1);
         }          }
   
         if ((symp->rs_name = cvs_strdup(sym)) == NULL) {          if ((symp->rs_name = strdup(sym)) == NULL) {
                 rcs_errno = RCS_ERR_ERRNO;                  rcs_errno = RCS_ERR_ERRNO;
                 cvs_log(LP_ERRNO, "failed to duplicate symbol");                  cvs_log(LP_ERRNO, "failed to duplicate symbol");
                 free(symp);                  free(symp);
Line 817 
Line 816 
         }          }
   
         if ((symp->rs_num = rcsnum_alloc()) == NULL) {          if ((symp->rs_num = rcsnum_alloc()) == NULL) {
                 cvs_strfree(symp->rs_name);                  free(symp->rs_name);
                 free(symp);                  free(symp);
                 return (-1);                  return (-1);
         }          }
Line 858 
Line 857 
         }          }
   
         TAILQ_REMOVE(&(file->rf_symbols), symp, rs_list);          TAILQ_REMOVE(&(file->rf_symbols), symp, rs_list);
         cvs_strfree(symp->rs_name);          free(symp->rs_name);
         rcsnum_free(symp->rs_num);          rcsnum_free(symp->rs_num);
         free(symp);          free(symp);
   
Line 990 
Line 989 
                 return (-1);                  return (-1);
         }          }
   
         lkp->rl_name = cvs_strdup(user);          lkp->rl_name = strdup(user);
         if (lkp->rl_name == NULL) {          if (lkp->rl_name == NULL) {
                 cvs_log(LP_ERRNO, "failed to duplicate user name");                  cvs_log(LP_ERRNO, "failed to duplicate user name");
                 free(lkp);                  free(lkp);
Line 998 
Line 997 
         }          }
   
         if ((lkp->rl_num = rcsnum_alloc()) == NULL) {          if ((lkp->rl_num = rcsnum_alloc()) == NULL) {
                 cvs_strfree(lkp->rl_name);                  free(lkp->rl_name);
                 free(lkp);                  free(lkp);
                 return (-1);                  return (-1);
         }          }
Line 1036 
Line 1035 
   
         TAILQ_REMOVE(&(file->rf_locks), lkp, rl_list);          TAILQ_REMOVE(&(file->rf_locks), lkp, rl_list);
         rcsnum_free(lkp->rl_num);          rcsnum_free(lkp->rl_num);
         cvs_strfree(lkp->rl_name);          free(lkp->rl_name);
         free(lkp);          free(lkp);
   
         /* not synced anymore */          /* not synced anymore */
Line 1066 
Line 1065 
 {  {
         char *tmp;          char *tmp;
   
         if ((tmp = cvs_strdup(desc)) == NULL)          if ((tmp = strdup(desc)) == NULL)
                 return (-1);                  return (-1);
   
         if (file->rf_desc != NULL)          if (file->rf_desc != NULL)
                 cvs_strfree(file->rf_desc);                  free(file->rf_desc);
         file->rf_desc = tmp;          file->rf_desc = tmp;
         file->rf_flags &= ~RCS_SYNCED;          file->rf_flags &= ~RCS_SYNCED;
   
Line 1123 
Line 1122 
 {  {
         char *tmp;          char *tmp;
   
         if ((tmp = cvs_strdup(comment)) == NULL)          if ((tmp = strdup(comment)) == NULL)
                 return (-1);                  return (-1);
   
         if (file->rf_comment != NULL)          if (file->rf_comment != NULL)
                 cvs_strfree(file->rf_comment);                  free(file->rf_comment);
         file->rf_comment = tmp;          file->rf_comment = tmp;
         file->rf_flags &= ~RCS_SYNCED;          file->rf_flags &= ~RCS_SYNCED;
   
Line 1433 
Line 1432 
         if (username == NULL)          if (username == NULL)
                 username = pw->pw_name;                  username = pw->pw_name;
   
         if ((rdp->rd_author = cvs_strdup(username)) == NULL) {          if ((rdp->rd_author = strdup(username)) == NULL) {
                 rcs_freedelta(rdp);                  rcs_freedelta(rdp);
                 rcsnum_free(old);                  rcsnum_free(old);
                 return (-1);                  return (-1);
         }          }
   
         if ((rdp->rd_state = cvs_strdup(RCS_STATE_EXP)) == NULL) {          if ((rdp->rd_state = strdup(RCS_STATE_EXP)) == NULL) {
                 rcs_freedelta(rdp);                  rcs_freedelta(rdp);
                 rcsnum_free(old);                  rcsnum_free(old);
                 return (-1);                  return (-1);
         }          }
   
         if ((rdp->rd_log = cvs_strdup(msg)) == NULL) {          if ((rdp->rd_log = strdup(msg)) == NULL) {
                 rcs_errno = RCS_ERR_ERRNO;                  rcs_errno = RCS_ERR_ERRNO;
                 rcs_freedelta(rdp);                  rcs_freedelta(rdp);
                 rcsnum_free(old);                  rcsnum_free(old);
Line 1562 
Line 1561 
                         buf[i++] = 'l';                          buf[i++] = 'l';
         }          }
   
         if ((tmp = cvs_strdup(buf)) == NULL) {          if ((tmp = strdup(buf)) == NULL) {
                 cvs_log(LP_ERRNO, "%s: failed to copy expansion mode",                  cvs_log(LP_ERRNO, "%s: failed to copy expansion mode",
                     file->rf_path);                      file->rf_path);
                 return (-1);                  return (-1);
         }          }
   
         if (file->rf_expand != NULL)          if (file->rf_expand != NULL)
                 cvs_strfree(file->rf_expand);                  free(file->rf_expand);
         file->rf_expand = tmp;          file->rf_expand = tmp;
         /* not synced anymore */          /* not synced anymore */
         file->rf_flags &= ~RCS_SYNCED;          file->rf_flags &= ~RCS_SYNCED;
Line 1738 
Line 1737 
                 return (-1);                  return (-1);
         }          }
   
         rfp->rf_desc = cvs_strdup(RCS_TOKSTR(rfp));          rfp->rf_desc = strdup(RCS_TOKSTR(rfp));
         if (rfp->rf_desc == NULL) {          if (rfp->rf_desc == NULL) {
                 cvs_log(LP_ERRNO, "failed to duplicate rcs token");                  cvs_log(LP_ERRNO, "failed to duplicate rcs token");
                 rcs_freepdata(pdp);                  rcs_freepdata(pdp);
Line 1840 
Line 1839 
                                     rfp->rf_branch) < 0)                                      rfp->rf_branch) < 0)
                                         return (-1);                                          return (-1);
                         } else if (tok == RCS_TOK_COMMENT) {                          } else if (tok == RCS_TOK_COMMENT) {
                                 rfp->rf_comment = cvs_strdup(RCS_TOKSTR(rfp));                                  rfp->rf_comment = strdup(RCS_TOKSTR(rfp));
                                 if (rfp->rf_comment == NULL) {                                  if (rfp->rf_comment == NULL) {
                                         cvs_log(LP_ERRNO,                                          cvs_log(LP_ERRNO,
                                             "failed to duplicate rcs token");                                              "failed to duplicate rcs token");
                                         return (-1);                                          return (-1);
                                 }                                  }
                         } else if (tok == RCS_TOK_EXPAND) {                          } else if (tok == RCS_TOK_EXPAND) {
                                 rfp->rf_expand = cvs_strdup(RCS_TOKSTR(rfp));                                  rfp->rf_expand = strdup(RCS_TOKSTR(rfp));
                                 if (rfp->rf_expand == NULL) {                                  if (rfp->rf_expand == NULL) {
                                         cvs_log(LP_ERRNO,                                          cvs_log(LP_ERRNO,
                                             "failed to duplicate rcs token");                                              "failed to duplicate rcs token");
Line 1998 
Line 1997 
                         }                          }
   
                         if (tokstr != NULL)                          if (tokstr != NULL)
                                 cvs_strfree(tokstr);                                  free(tokstr);
                         tokstr = cvs_strdup(RCS_TOKSTR(rfp));                          tokstr = strdup(RCS_TOKSTR(rfp));
                         if (tokstr == NULL) {                          if (tokstr == NULL) {
                                 cvs_log(LP_ERRNO,                                  cvs_log(LP_ERRNO,
                                     "failed to duplicate rcs token");                                      "failed to duplicate rcs token");
Line 2014 
Line 2013 
                                 cvs_log(LP_ERR,                                  cvs_log(LP_ERR,
                                     "missing semi-colon after RCS `%s' key",                                      "missing semi-colon after RCS `%s' key",
                                     rk->rk_str);                                      rk->rk_str);
                                 cvs_strfree(tokstr);                                  free(tokstr);
                                 rcs_freedelta(rdp);                                  rcs_freedelta(rdp);
                                 return (-1);                                  return (-1);
                         }                          }
   
                         if (tok == RCS_TOK_DATE) {                          if (tok == RCS_TOK_DATE) {
                                 if ((datenum = rcsnum_parse(tokstr)) == NULL) {                                  if ((datenum = rcsnum_parse(tokstr)) == NULL) {
                                         cvs_strfree(tokstr);                                          free(tokstr);
                                         rcs_freedelta(rdp);                                          rcs_freedelta(rdp);
                                         return (-1);                                          return (-1);
                                 }                                  }
Line 2032 
Line 2031 
                                             "fields",                                              "fields",
                                             (datenum->rn_len > 6) ? "too many" :                                              (datenum->rn_len > 6) ? "too many" :
                                             "missing");                                              "missing");
                                         cvs_strfree(tokstr);                                          free(tokstr);
                                         rcs_freedelta(rdp);                                          rcs_freedelta(rdp);
                                         rcsnum_free(datenum);                                          rcsnum_free(datenum);
                                         return (-1);                                          return (-1);
Line 2073 
Line 2072 
         }          }
   
         if (tokstr != NULL)          if (tokstr != NULL)
                 cvs_strfree(tokstr);                  free(tokstr);
   
         TAILQ_INSERT_TAIL(&(rfp->rf_delta), rdp, rd_list);          TAILQ_INSERT_TAIL(&(rfp->rf_delta), rdp, rd_list);
         rfp->rf_ndelta++;          rfp->rf_ndelta++;
Line 2140 
Line 2139 
                     RCS_TOKSTR(rfp));                      RCS_TOKSTR(rfp));
                 return (-1);                  return (-1);
         }          }
         rdp->rd_log = cvs_strdup(RCS_TOKSTR(rfp));          rdp->rd_log = strdup(RCS_TOKSTR(rfp));
         if (rdp->rd_log == NULL) {          if (rdp->rd_log == NULL) {
                 cvs_log(LP_ERRNO, "failed to copy RCS deltatext log");                  cvs_log(LP_ERRNO, "failed to copy RCS deltatext log");
                 return (-1);                  return (-1);
Line 2229 
Line 2228 
                         cvs_log(LP_ERRNO, "failed to allocate RCS symbol");                          cvs_log(LP_ERRNO, "failed to allocate RCS symbol");
                         return (-1);                          return (-1);
                 }                  }
                 symp->rs_name = cvs_strdup(RCS_TOKSTR(rfp));                  symp->rs_name = strdup(RCS_TOKSTR(rfp));
                 if (symp->rs_name == NULL) {                  if (symp->rs_name == NULL) {
                         cvs_log(LP_ERRNO, "failed to duplicate rcs token");                          cvs_log(LP_ERRNO, "failed to duplicate rcs token");
                         free(symp);                          free(symp);
Line 2239 
Line 2238 
                 symp->rs_num = rcsnum_alloc();                  symp->rs_num = rcsnum_alloc();
                 if (symp->rs_num == NULL) {                  if (symp->rs_num == NULL) {
                         cvs_log(LP_ERRNO, "failed to allocate rcsnum info");                          cvs_log(LP_ERRNO, "failed to allocate rcsnum info");
                         cvs_strfree(symp->rs_name);                          free(symp->rs_name);
                         free(symp);                          free(symp);
                         return (-1);                          return (-1);
                 }                  }
Line 2250 
Line 2249 
                         cvs_log(LP_ERR, "unexpected token `%s' in symbol list",                          cvs_log(LP_ERR, "unexpected token `%s' in symbol list",
                             RCS_TOKSTR(rfp));                              RCS_TOKSTR(rfp));
                         rcsnum_free(symp->rs_num);                          rcsnum_free(symp->rs_num);
                         cvs_strfree(symp->rs_name);                          free(symp->rs_name);
                         free(symp);                          free(symp);
                         return (-1);                          return (-1);
                 }                  }
Line 2261 
Line 2260 
                         cvs_log(LP_ERR, "unexpected token `%s' in symbol list",                          cvs_log(LP_ERR, "unexpected token `%s' in symbol list",
                             RCS_TOKSTR(rfp));                              RCS_TOKSTR(rfp));
                         rcsnum_free(symp->rs_num);                          rcsnum_free(symp->rs_num);
                         cvs_strfree(symp->rs_name);                          free(symp->rs_name);
                         free(symp);                          free(symp);
                         return (-1);                          return (-1);
                 }                  }
Line 2270 
Line 2269 
                         cvs_log(LP_ERR, "failed to parse RCS NUM `%s'",                          cvs_log(LP_ERR, "failed to parse RCS NUM `%s'",
                             RCS_TOKSTR(rfp));                              RCS_TOKSTR(rfp));
                         rcsnum_free(symp->rs_num);                          rcsnum_free(symp->rs_num);
                         cvs_strfree(symp->rs_name);                          free(symp->rs_name);
                         free(symp);                          free(symp);
                         return (-1);                          return (-1);
                 }                  }
Line 2311 
Line 2310 
                         return (-1);                          return (-1);
                 }                  }
   
                 if ((lkp->rl_name = cvs_strdup(RCS_TOKSTR(rfp))) == NULL) {                  if ((lkp->rl_name = strdup(RCS_TOKSTR(rfp))) == NULL) {
                         cvs_log(LP_ERR, "failed to save locking user");                          cvs_log(LP_ERR, "failed to save locking user");
                         free(lkp);                          free(lkp);
                         return (-1);                          return (-1);
Line 2319 
Line 2318 
   
                 lkp->rl_num = rcsnum_alloc();                  lkp->rl_num = rcsnum_alloc();
                 if (lkp->rl_num == NULL) {                  if (lkp->rl_num == NULL) {
                         cvs_strfree(lkp->rl_name);                          free(lkp->rl_name);
                         free(lkp);                          free(lkp);
                         return (-1);                          return (-1);
                 }                  }
Line 2330 
Line 2329 
                         cvs_log(LP_ERR, "unexpected token `%s' in symbol list",                          cvs_log(LP_ERR, "unexpected token `%s' in symbol list",
                             RCS_TOKSTR(rfp));                              RCS_TOKSTR(rfp));
                         rcsnum_free(lkp->rl_num);                          rcsnum_free(lkp->rl_num);
                         cvs_strfree(lkp->rl_name);                          free(lkp->rl_name);
                         free(lkp);                          free(lkp);
                         return (-1);                          return (-1);
                 }                  }
Line 2341 
Line 2340 
                         cvs_log(LP_ERR, "unexpected token `%s' in symbol list",                          cvs_log(LP_ERR, "unexpected token `%s' in symbol list",
                             RCS_TOKSTR(rfp));                              RCS_TOKSTR(rfp));
                         rcsnum_free(lkp->rl_num);                          rcsnum_free(lkp->rl_num);
                         cvs_strfree(lkp->rl_name);                          free(lkp->rl_name);
                         free(lkp);                          free(lkp);
                         return (-1);                          return (-1);
                 }                  }
Line 2350 
Line 2349 
                         cvs_log(LP_ERR, "failed to parse RCS NUM `%s'",                          cvs_log(LP_ERR, "failed to parse RCS NUM `%s'",
                             RCS_TOKSTR(rfp));                              RCS_TOKSTR(rfp));
                         rcsnum_free(lkp->rl_num);                          rcsnum_free(lkp->rl_num);
                         cvs_strfree(lkp->rl_name);                          free(lkp->rl_name);
                         free(lkp);                          free(lkp);
                         return (-1);                          return (-1);
                 }                  }
Line 2437 
Line 2436 
                 rcsnum_free(rdp->rd_next);                  rcsnum_free(rdp->rd_next);
   
         if (rdp->rd_author != NULL)          if (rdp->rd_author != NULL)
                 cvs_strfree(rdp->rd_author);                  free(rdp->rd_author);
         if (rdp->rd_state != NULL)          if (rdp->rd_state != NULL)
                 cvs_strfree(rdp->rd_state);                  free(rdp->rd_state);
         if (rdp->rd_log != NULL)          if (rdp->rd_log != NULL)
                 cvs_strfree(rdp->rd_log);                  free(rdp->rd_log);
         if (rdp->rd_text != NULL)          if (rdp->rd_text != NULL)
                 free(rdp->rd_text);                  free(rdp->rd_text);
   
Line 2883 
Line 2882 
                 return (-1);                  return (-1);
   
         if (rdp->rd_log != NULL)          if (rdp->rd_log != NULL)
                 cvs_strfree(rdp->rd_log);                  free(rdp->rd_log);
   
         if ((rdp->rd_log = cvs_strdup(logtext)) == NULL)          if ((rdp->rd_log = strdup(logtext)) == NULL)
                 return (-1);                  return (-1);
   
         rfp->rf_flags &= ~RCS_SYNCED;          rfp->rf_flags &= ~RCS_SYNCED;
Line 2925 
Line 2924 
                 return (-1);                  return (-1);
   
         if (rdp->rd_state != NULL)          if (rdp->rd_state != NULL)
                 cvs_strfree(rdp->rd_state);                  free(rdp->rd_state);
   
         if ((rdp->rd_state = cvs_strdup(state)) == NULL)          if ((rdp->rd_state = strdup(state)) == NULL)
                 return (-1);                  return (-1);
   
         rfp->rf_flags &= ~RCS_SYNCED;          rfp->rf_flags &= ~RCS_SYNCED;

Legend:
Removed from v.1.98  
changed lines
  Added in v.1.99