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

Diff for /src/usr.bin/diff3/diff3prog.c between version 1.1 and 1.2

version 1.1, 2003/07/10 16:06:07 version 1.2, 2003/07/14 17:43:52
Line 126 
Line 126 
  */   */
 int last[4];  int last[4];
 int eflag;  int eflag;
 int oflag;      /* indicates whether to mark overlaps (-E or -X)*/  int oflag;              /* indicates whether to mark overlaps (-E or -X)*/
 int debug  = 0;  int debug  = 0;
 char f1mark[40], f3mark[40];    /* markers for -E and -X */  char f1mark[40], f3mark[40];    /* markers for -E and -X */
   
Line 152 
Line 152 
 {  {
         int ch, i, m, n;          int ch, i, m, n;
   
         eflag = 0;          eflag = 0;
         oflag = 0;          oflag = 0;
         while ((ch = getopt(argc, argv, "EeXx3")) != -1) {          while ((ch = getopt(argc, argv, "EeXx3")) != -1) {
                 switch (ch) {                  switch (ch) {
                 case 'E':                  case 'E':
                         eflag = 3;                          eflag = 3;
                         oflag = 1;                          oflag = 1;
                         break;                          break;
                 case 'e':                  case 'e':
                         eflag = 3;                          eflag = 3;
                         break;                          break;
                 case 'X':                  case 'X':
                         oflag = eflag = 1;                          oflag = eflag = 1;
                         break;                          break;
                 case 'x':                  case 'x':
                         eflag = 1;                          eflag = 1;
                         break;                          break;
                 case '3':                  case '3':
                         eflag = 2;                          eflag = 2;
                         break;                          break;
Line 180 
Line 180 
         if (argc < 5)          if (argc < 5)
                 usage();                  usage();
   
         if (oflag) {          if (oflag) {
                 (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s",                  (void)snprintf(f1mark, sizeof(f1mark), "<<<<<<< %s",
                     argc >= 6 ? argv[5] : argv[2]);                      argc >= 6 ? argv[5] : argv[2]);
                 (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s",                  (void)snprintf(f3mark, sizeof(f3mark), ">>>>>>> %s",
                     argc >= 7 ? argv[6] : argv[4]);                      argc >= 7 ? argv[6] : argv[4]);
         }          }
   
         m = readin(argv[0], d13);          m = readin(argv[0], d13);
         n = readin(argv[1], d23);          n = readin(argv[1], d23);
Line 364 
Line 364 
                  * Overlapping changes from file 1 and 2; extend changes                   * Overlapping changes from file 1 and 2; extend changes
                  * appropriately to make them coincide.                   * appropriately to make them coincide.
                  */                   */
                  if (d1->new.from < d2->new.from) {                  if (d1->new.from < d2->new.from) {
                         d2->old.from -= d2->new.from-d1->new.from;                          d2->old.from -= d2->new.from-d1->new.from;
                         d2->new.from = d1->new.from;                          d2->new.from = d1->new.from;
                 } else if (d2->new.from < d1->new.from) {                  } else if (d2->new.from < d1->new.from) {
Line 497 
Line 497 
 {  {
         int i;          int i;
   
         for (i = 0; i < 2; i++)          for (i = 0; i < 2; i++)
                 (void)fseek(fp[i], (long)-nchar, 1);                  (void)fseek(fp[i], (long)-nchar, 1);
 }  }
   
Line 516 
Line 516 
         if (((dup + 1) & eflag) == 0)          if (((dup + 1) & eflag) == 0)
                 return (j);                  return (j);
         j++;          j++;
         overlap[j] = !dup;          overlap[j] = !dup;
         if (!dup)          if (!dup)
                 overlapcnt++;                  overlapcnt++;
         de[j].old.from = diff->old.from;          de[j].old.from = diff->old.from;
         de[j].old.to = diff->old.to;          de[j].old.to = diff->old.to;
Line 534 
Line 534 
         char block[BUFSIZ];          char block[BUFSIZ];
   
         for (n = n; n > 0; n--) {          for (n = n; n > 0; n--) {
                 if (!oflag || !overlap[n])                  if (!oflag || !overlap[n])
                         prange(&de[n].old);                          prange(&de[n].old);
                 else                  else
                         printf("%da\n=======\n", de[n].old.to -1);                          printf("%da\n=======\n", de[n].old.to -1);
                 (void)fseek(fp[2], (long)de[n].new.from, 0);                  (void)fseek(fp[2], (long)de[n].new.from, 0);
                 for (k = de[n].new.to-de[n].new.from; k > 0; k-= j) {                  for (k = de[n].new.to-de[n].new.from; k > 0; k-= j) {
                         j = k > BUFSIZ ? BUFSIZ : k;                          j = k > BUFSIZ ? BUFSIZ : k;
Line 545 
Line 545 
                                 trouble();                                  trouble();
                         (void)fwrite(block, 1, j, stdout);                          (void)fwrite(block, 1, j, stdout);
                 }                  }
                 if (!oflag || !overlap[n])                  if (!oflag || !overlap[n])
                         printf(".\n");                          printf(".\n");
                 else {                  else {
                         printf("%s\n.\n", f3mark);                          printf("%s\n.\n", f3mark);
                         printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark);                          printf("%da\n%s\n.\n", de[n].old.from - 1, f1mark);
                 }                  }
         }          }
         exit(overlapcnt);          exit(overlapcnt);
 }  }
   
 __dead void  __dead void

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2