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

Diff for /src/usr.bin/cvs/diff.c between version 1.47 and 1.48

version 1.47, 2005/07/10 13:58:19 version 1.48, 2005/07/10 21:50:25
Line 241 
Line 241 
   
   
 static int aflag, bflag, dflag, iflag, Nflag, pflag, tflag, Tflag, wflag;  static int aflag, bflag, dflag, iflag, Nflag, pflag, tflag, Tflag, wflag;
 static int context, status;  static int context;
 static int format = D_NORMAL;  static int format = D_NORMAL;
 static struct stat stb1, stb2;  static struct stat stb1, stb2;
 static char *ifdefname, *ignore_pats, diffargs[128];  static char *ifdefname, *ignore_pats, diffargs[128];
Line 719 
Line 719 
         f1 = fopen(file1, "r");          f1 = fopen(file1, "r");
         if (f1 == NULL) {          if (f1 == NULL) {
                 cvs_log(LP_ERRNO, "%s", file1);                  cvs_log(LP_ERRNO, "%s", file1);
                 status |= 2;  
                 goto closem;                  goto closem;
         }          }
   
         f2 = fopen(file2, "r");          f2 = fopen(file2, "r");
         if (f2 == NULL) {          if (f2 == NULL) {
                 cvs_log(LP_ERRNO, "%s", file2);                  cvs_log(LP_ERRNO, "%s", file2);
                 status |= 2;  
                 goto closem;                  goto closem;
         }          }
   
Line 737 
Line 735 
                 break;                  break;
         default:          default:
                 /* error */                  /* error */
                 status |= 2;  
                 goto closem;                  goto closem;
         }          }
   
         if (!asciifile(f1) || !asciifile(f2)) {          if (!asciifile(f1) || !asciifile(f2)) {
                 rval = D_BINARY;                  rval = D_BINARY;
                 status |= 1;  
                 goto closem;                  goto closem;
         }          }
         if ((prepare(0, f1, stb1.st_size) < 0) ||          if ((prepare(0, f1, stb1.st_size) < 0) ||
             (prepare(1, f2, stb2.st_size) < 0)) {              (prepare(1, f2, stb2.st_size) < 0)) {
                 status |= 2;  
                 goto closem;                  goto closem;
         }          }
         prune();          prune();
Line 757 
Line 752 
   
         member = (int *)file[1];          member = (int *)file[1];
         equiv(sfile[0], slen[0], sfile[1], slen[1], member);          equiv(sfile[0], slen[0], sfile[1], slen[1], member);
         if ((tmp = realloc(member, (slen[1] + 2) * sizeof(int))) == NULL) {          if ((tmp = realloc(member, (slen[1] + 2) * sizeof(int))) == NULL)
                 status |= 2;  
                 goto closem;                  goto closem;
         }  
         member = (int *)tmp;          member = (int *)tmp;
   
         class = (int *)file[0];          class = (int *)file[0];
         unsort(sfile[0], slen[0], class);          unsort(sfile[0], slen[0], class);
         if ((tmp = realloc(class, (slen[0] + 2) * sizeof(int))) == NULL) {          if ((tmp = realloc(class, (slen[0] + 2) * sizeof(int))) == NULL)
                 status |= 2;  
                 goto closem;                  goto closem;
         }  
         class = (int *)tmp;          class = (int *)tmp;
   
         if ((klist = malloc((slen[0] + 2) * sizeof(int))) == NULL) {          if ((klist = malloc((slen[0] + 2) * sizeof(int))) == NULL) {
                 cvs_log(LP_ERRNO, "failed to allocate klist");                  cvs_log(LP_ERRNO, "failed to allocate klist");
                 status |= 2;  
                 goto closem;                  goto closem;
         }          }
         clen = 0;          clen = 0;
         clistlen = 100;          clistlen = 100;
         if ((clist = malloc(clistlen * sizeof(cand))) == NULL) {          if ((clist = malloc(clistlen * sizeof(cand))) == NULL) {
                 cvs_log(LP_ERRNO, "failed to allocate clist");                  cvs_log(LP_ERRNO, "failed to allocate clist");
                 status |= 2;  
                 goto closem;                  goto closem;
         }          }
         i = stone(class, slen[0], member, klist);  
           if ((i = stone(class, slen[0], member, klist)) < 0)
                   goto closem;
   
         free(member);          free(member);
         free(class);          free(class);
   
Line 799 
Line 791 
   
 closem:  closem:
         if (anychange) {          if (anychange) {
                 status |= 1;  
                 if (rval == D_SAME)                  if (rval == D_SAME)
                         rval = D_DIFFER;                          rval = D_DIFFER;
         }          }
Line 950 
Line 941 
 static int  static int
 stone(int *a, int n, int *b, int *c)  stone(int *a, int n, int *b, int *c)
 {  {
           int ret;
         int i, k, y, j, l;          int i, k, y, j, l;
         int oldc, tc, oldl;          int oldc, tc, oldl;
         u_int numtries;          u_int numtries;
Line 958 
Line 950 
         const u_int bound = dflag ? UINT_MAX : MAX(256, (u_int)isqrt(n));          const u_int bound = dflag ? UINT_MAX : MAX(256, (u_int)isqrt(n));
   
         k = 0;          k = 0;
         c[0] = newcand(0, 0, 0);          if ((ret = newcand(0, 0, 0)) < 0)
                   return (-1);
           c[0] = ret;
         for (i = 1; i <= n; i++) {          for (i = 1; i <= n; i++) {
                 j = a[i];                  j = a[i];
                 if (j == 0)                  if (j == 0)
Line 977 
Line 971 
                                 if (clist[c[l]].y <= y)                                  if (clist[c[l]].y <= y)
                                         continue;                                          continue;
                                 tc = c[l];                                  tc = c[l];
                                 c[l] = newcand(i, y, oldc);                                  if ((ret = newcand(i, y, oldc)) < 0)
                                           return (-1);
                                   c[l] = ret;
                                 oldc = tc;                                  oldc = tc;
                                 oldl = l;                                  oldl = l;
                                 numtries++;                                  numtries++;
                         } else {                          } else {
                                 c[l] = newcand(i, y, oldc);                                  if ((ret = newcand(i, y, oldc)) < 0)
                                           return (-1);
                                   c[l] = ret;
                                 k++;                                  k++;
                                 break;                                  break;
                         }                          }

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48