[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.193 and 1.194

version 1.193, 2007/01/11 17:44:18 version 1.194, 2007/01/12 17:25:33
Line 1374 
Line 1374 
 int  int
 rcs_rev_remove(RCSFILE *rf, RCSNUM *rev)  rcs_rev_remove(RCSFILE *rf, RCSNUM *rev)
 {  {
         char *newdeltatext, *path_tmp1, *path_tmp2;          char *path_tmp1, *path_tmp2;
         struct rcs_delta *rdp, *prevrdp, *nextrdp;          struct rcs_delta *rdp, *prevrdp, *nextrdp;
         BUF *nextbuf, *prevbuf, *newdiff;          BUF *nextbuf, *prevbuf, *newdiff, *newdeltatext;
   
         if (rev == RCS_HEAD_REV)          if (rev == RCS_HEAD_REV)
                 rev = rf->rf_head;                  rev = rf->rf_head;
Line 1424 
Line 1424 
                 if (cvs_diffreg(path_tmp1, path_tmp2, newdiff) == D_ERROR)                  if (cvs_diffreg(path_tmp1, path_tmp2, newdiff) == D_ERROR)
                         fatal("rcs_diffreg failed");                          fatal("rcs_diffreg failed");
   
                 newdeltatext = cvs_buf_release(newdiff);                  newdeltatext = newdiff;
         } else if (nextrdp == NULL && prevrdp != NULL) {          } else if (nextrdp == NULL && prevrdp != NULL) {
                 newdeltatext = cvs_buf_release(prevbuf);                  newdeltatext = prevbuf;
         }          }
   
         if (newdeltatext != NULL) {          if (newdeltatext != NULL) {
Line 2792 
Line 2792 
  * Returns -1 on error, 0 on success.   * Returns -1 on error, 0 on success.
  */   */
 int  int
 rcs_deltatext_set(RCSFILE *rfp, RCSNUM *rev, const char *dtext)  rcs_deltatext_set(RCSFILE *rfp, RCSNUM *rev, BUF *bp)
 {  {
         size_t len;          size_t len;
           u_char *dtext;
         struct rcs_delta *rdp;          struct rcs_delta *rdp;
   
         /* Write operations require full parsing */          /* Write operations require full parsing */
Line 2806 
Line 2807 
         if (rdp->rd_text != NULL)          if (rdp->rd_text != NULL)
                 xfree(rdp->rd_text);                  xfree(rdp->rd_text);
   
         len = strlen(dtext);          len = cvs_buf_len(bp);
           dtext = cvs_buf_release(bp);
           bp = NULL;
   
         if (len != 0) {          if (len != 0) {
                 /* XXX - use xstrdup() if rd_text changes to char *. */                  rdp->rd_text = xmalloc(len);
                 rdp->rd_text = xmalloc(len + 1);  
                 rdp->rd_tlen = len;                  rdp->rd_tlen = len;
                 (void)memcpy(rdp->rd_text, dtext, len + 1);                  (void)memcpy(rdp->rd_text, dtext, len);
         } else {          } else {
                 rdp->rd_text = NULL;                  rdp->rd_text = NULL;
                 rdp->rd_tlen = 0;                  rdp->rd_tlen = 0;
         }          }
   
           if (dtext != NULL)
                   xfree(dtext);
   
         return (0);          return (0);
 }  }

Legend:
Removed from v.1.193  
changed lines
  Added in v.1.194