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

Diff for /src/usr.bin/diff/diffreg.c between version 1.15 and 1.16

version 1.15, 2003/06/25 17:49:22 version 1.16, 2003/06/25 21:43:49
Line 311 
Line 311 
   
         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);
         member = ralloc(member, (slen[1] + 2) * sizeof(int));          member = erealloc(member, (slen[1] + 2) * sizeof(int));
   
         class = (int *)file[0];          class = (int *)file[0];
         unsort(sfile[0], slen[0], class);          unsort(sfile[0], slen[0], class);
         class = ralloc(class, (slen[0] + 2) * sizeof(int));          class = erealloc(class, (slen[0] + 2) * sizeof(int));
   
         klist = talloc((slen[0] + 2) * sizeof(int));          klist = emalloc((slen[0] + 2) * sizeof(int));
         clist = talloc(sizeof(cand));          clist = emalloc(sizeof(cand));
         i = stone(class, slen[0], member, klist);          i = stone(class, slen[0], member, klist);
         free(member);          free(member);
         free(class);          free(class);
   
         J = talloc((len[0] + 2) * sizeof(int));          J = emalloc((len[0] + 2) * sizeof(int));
         unravel(klist[i]);          unravel(klist[i]);
         free(clist);          free(clist);
         free(klist);          free(klist);
   
         ixold = talloc((len[0] + 2) * sizeof(long));          ixold = emalloc((len[0] + 2) * sizeof(long));
         ixnew = talloc((len[1] + 2) * sizeof(long));          ixnew = emalloc((len[1] + 2) * sizeof(long));
         check();          check();
         output();          output();
         status = anychange;          status = anychange;
Line 368 
Line 368 
 char *  char *
 splice(char *dir, char *file)  splice(char *dir, char *file)
 {  {
         char *tail, buf[BUFSIZ];          char *tail, *buf;
           size_t len;
   
         if (!strcmp(file, "-")) {          if (!strcmp(file, "-")) {
                 warnx("can't specify - with other arg directory");                  warnx("can't specify - with other arg directory");
                 done(0);                  done(0);
         }          }
         tail = strrchr(file, '/');          tail = strrchr(file, '/');
         if (tail == 0)          if (tail == NULL)
                 tail = file;                  tail = file;
         else          else
                 tail++;                  tail++;
         snprintf(buf, sizeof buf, "%s/%s", dir, tail);          len = strlen(dir) + strlen(tail) + 1;
         return (strdup(buf));          buf = emalloc(len);
           snprintf(buf, len, "%s/%s", dir, tail);
           return (buf);
 }  }
   
 static void  static void
Line 390 
Line 393 
         int j, h;          int j, h;
   
         fseek(fd, 0L, SEEK_SET);          fseek(fd, 0L, SEEK_SET);
         p = talloc(3 * sizeof(struct line));          p = emalloc(3 * sizeof(struct line));
         for (j = 0; (h = readhash(fd));) {          for (j = 0; (h = readhash(fd));) {
                 p = ralloc(p, (++j + 3) * sizeof(struct line));                  p = erealloc(p, (++j + 3) * sizeof(struct line));
                 p[j].value = h;                  p[j].value = h;
         }          }
         len[i] = j;          len[i] = j;
Line 491 
Line 494 
 {  {
         struct cand *q;          struct cand *q;
   
         clist = ralloc(clist, ++clen * sizeof(cand));          clist = erealloc(clist, ++clen * sizeof(cand));
         q = clist + clen - 1;          q = clist + clen - 1;
         q->x = x;          q->x = x;
         q->y = y;          q->y = y;
Line 537 
Line 540 
 }  }
   
 /*  /*
  * check does double duty: 1.  ferret out any fortuitous correspondences due   * Check does double duty:
  * to confounding by hashing (which result in "jackpot") 2.  collect random   *  1.  ferret out any fortuitous correspondences due
  * access indexes to the two files   *      to confounding by hashing (which result in "jackpot")
    *  2.  collect random access indexes to the two files
  */   */
   
 static void  static void
 check(void)  check(void)
 {  {
Line 678 
Line 681 
 {  {
         int *a, i;          int *a, i;
   
         a = talloc((l + 1) * sizeof(int));          a = emalloc((l + 1) * sizeof(int));
         for (i = 1; i <= l; i++)          for (i = 1; i <= l; i++)
                 a[f[i].serial] = f[i].value;                  a[f[i].serial] = f[i].value;
         for (i = 1; i <= l; i++)          for (i = 1; i <= l; i++)
Line 788 
Line 791 
                         stat(file2, &stbuf);                          stat(file2, &stbuf);
                         printf("%s", ctime(&stbuf.st_mtime));                          printf("%s", ctime(&stbuf.st_mtime));
   
                         context_vec_start = talloc(MAX_CONTEXT *                          context_vec_start = emalloc(MAX_CONTEXT *
                             sizeof(struct context_vec));                              sizeof(struct context_vec));
                         context_vec_end = context_vec_start + MAX_CONTEXT;                          context_vec_end = context_vec_start + MAX_CONTEXT;
                         context_vec_ptr = context_vec_start - 1;                          context_vec_ptr = context_vec_start - 1;
Line 1014 
Line 1017 
                         return (0);                          return (0);
         return (1);          return (1);
 }  }
   
   
 /* dump accumulated "context" diff changes */  /* dump accumulated "context" diff changes */
 static void  static void

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16