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

Diff for /src/usr.bin/cvs/diff3.c between version 1.29 and 1.30

version 1.29, 2006/11/10 08:32:37 version 1.30, 2007/01/11 17:44:18
Line 163 
Line 163 
         char *argv[5], r1[16], r2[16];          char *argv[5], r1[16], r2[16];
         char *dp13, *dp23, *path1, *path2, *path3;          char *dp13, *dp23, *path1, *path2, *path3;
         BUF *b1, *b2, *b3, *d1, *d2, *diffb;          BUF *b1, *b2, *b3, *d1, *d2, *diffb;
           size_t dlen, plen;
   
         b1 = b2 = b3 = d1 = d2 = diffb = NULL;          b1 = b2 = b3 = d1 = d2 = diffb = NULL;
   
Line 230 
Line 231 
         cvs_buf_putc(diffb, '\0');          cvs_buf_putc(diffb, '\0');
         cvs_buf_putc(b1, '\0');          cvs_buf_putc(b1, '\0');
   
           plen = cvs_buf_len(diffb);
         patch = cvs_buf_release(diffb);          patch = cvs_buf_release(diffb);
           dlen = cvs_buf_len(b1);
         data = cvs_buf_release(b1);          data = cvs_buf_release(b1);
         diffb = b1 = NULL;          diffb = b1 = NULL;
   
         if ((diffb = cvs_patchfile(data, patch, ed_patch_lines)) == NULL)          if ((diffb = cvs_patchfile(data, dlen, patch, plen, ed_patch_lines)) == NULL)
                 goto out;                  goto out;
   
         if (verbose == 1 && diff3_conflicts != 0) {          if (verbose == 1 && diff3_conflicts != 0) {
Line 319 
Line 322 
         char op, *ep;          char op, *ep;
         struct cvs_line *sort, *lp, *dlp, *ndlp, *insert_after;          struct cvs_line *sort, *lp, *dlp, *ndlp, *insert_after;
         int start, end, i, lineno;          int start, end, i, lineno;
           u_char tmp;
   
         dlp = TAILQ_FIRST(&(dlines->l_lines));          dlp = TAILQ_FIRST(&(dlines->l_lines));
         lp = TAILQ_FIRST(&(plines->l_lines));          lp = TAILQ_FIRST(&(plines->l_lines));
Line 326 
Line 330 
         end = 0;          end = 0;
         for (lp = TAILQ_NEXT(lp, l_list); lp != NULL;          for (lp = TAILQ_NEXT(lp, l_list); lp != NULL;
             lp = TAILQ_NEXT(lp, l_list)) {              lp = TAILQ_NEXT(lp, l_list)) {
                 if (lp->l_line[0] == '\0')                  /* Skip blank lines */
                         fatal("ed_patch_lines");                  if (lp->l_len < 2)
                           continue;
                   /* NUL-terminate line buffer for strtol() safety. */
                   tmp = lp->l_line[lp->l_len - 1];
                   lp->l_line[lp->l_len - 1] = '\0';
                   /* len - 1 is NUL terminator so we use len - 2 for 'op' */
                 op = lp->l_line[strlen(lp->l_line) - 1];                  op = lp->l_line[strlen(lp->l_line) - 1];
                 start = (int)strtol(lp->l_line, &ep, 10);                  start = (int)strtol(lp->l_line, &ep, 10);
                   /* Restore the last byte of the buffer */
                   lp->l_line[lp->l_len - 1] = tmp;
                 if (op == 'a') {                  if (op == 'a') {
                         if (start > dlines->l_nblines ||                          if (start > dlines->l_nblines ||
                             start < 0 || *ep != 'a')                              start < 0 || *ep != 'a')
Line 386 
Line 397 
                                 if (lp == NULL)                                  if (lp == NULL)
                                         fatal("ed_patch_lines");                                          fatal("ed_patch_lines");
   
                                 if (!strcmp(lp->l_line, "."))                                  if (!memcmp(lp->l_line, ".", 1))
                                         break;                                          break;
   
                                 TAILQ_REMOVE(&(plines->l_lines), lp, l_list);                                  TAILQ_REMOVE(&(plines->l_lines), lp, l_list);

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.30