Lines Matching +full:- +full:d2
4 * Copyright (C) Caldera International Inc. 2001-2002.
36 /*-
124 static int cline[3]; /* # of the last-read line in each file (0-2) */
127 * is stored in last[1-3];
131 static int oflag; /* indicates whether to mark overlaps (-E or -X) */
172 { "show-overlap", no_argument, NULL, 'E' },
173 { "overlap-only", no_argument, NULL, 'x' },
174 { "initial-tab", no_argument, NULL, 'T' },
176 { "strip-trailing-cr", no_argument, NULL, STRIPCR_OPT },
177 { "show-all", no_argument, NULL, 'A' },
178 { "easy-only", no_argument, NULL, '3' },
181 { "diff-program", required_argument, NULL, DIFFPROG_OPT },
189 fprintf(stderr, "usage: diff3 [-3aAeEimTxX] [-L label1] [-L label2] " in usage()
190 "[-L label3] file1 file2 file3\n"); in usage()
236 * - an addition replaces a zero-length range in one file with a
237 * non-zero-length range from the other
239 * - a change replaces a non-zero-length range in one file with a
240 * non-zero-length range from the other
242 * - a deletion replaces a non-zero-length range in one file with a
243 * zero-length range from the other
257 if ((size_t)i >= szchanges - 1) in readin()
289 if ((*dd)[i].old.from < (*dd)[i - 1].old.to || in readin()
290 (*dd)[i].new.from < (*dd)[i - 1].new.to) in readin()
295 (*dd)[i].old.from = (*dd)[i].old.to = (*dd)[i - 1].old.to; in readin()
296 (*dd)[i].new.from = (*dd)[i].new.to = (*dd)[i - 1].new.to; in readin()
310 if (dup2(fd[1], STDOUT_FILENO) == -1) in diffexec()
316 case -1: in diffexec()
347 if (strip_cr && len >= 2 && strcmp("\r\n", &(buf[len - 2])) == 0) { in get_line()
348 buf[len - 2] = '\n'; in get_line()
349 buf[len - 1] = '\0'; in get_line()
350 len--; in get_line()
362 struct diff *d1, *d2, *d3; in merge() local
367 d2 = d23; in merge()
372 t2 = (d2 < d23 + m2); in merge()
377 if (!t2 || (t1 && d1->new.to < d2->new.from)) { in merge()
381 change(1, &d1->old, false); in merge()
382 keep(2, &d1->new); in merge()
383 change(3, &d1->new, false); in merge()
385 j = edit(d2, dup, j, DIFF_TYPE1); in merge()
391 if (!t1 || (t2 && d2->new.to < d1->new.from)) { in merge()
394 keep(1, &d2->new); in merge()
395 change(3, &d2->new, false); in merge()
396 change(2, &d2->old, false); in merge()
398 // XXX-THJ: What does it mean for the second file to differ? in merge()
400 j = edit(d2, dup, j, DIFF_TYPE2); in merge()
402 d2++; in merge()
409 if (d1 + 1 < d13 + m1 && d1->new.to >= d1[1].new.from) { in merge()
410 d1[1].old.from = d1->old.from; in merge()
411 d1[1].new.from = d1->new.from; in merge()
417 if (d2 + 1 < d23 + m2 && d2->new.to >= d2[1].new.from) { in merge()
418 d2[1].old.from = d2->old.from; in merge()
419 d2[1].new.from = d2->new.from; in merge()
420 d2++; in merge()
424 if (d1->new.from == d2->new.from && d1->new.to == d2->new.to) { in merge()
425 dup = duplicate(&d1->old, &d2->old); in merge()
432 change(1, &d1->old, dup); in merge()
433 change(2, &d2->old, false); in merge()
434 d3 = d1->old.to > d1->old.from ? d1 : d2; in merge()
435 change(3, &d3->new, false); in merge()
441 d2++; in merge()
448 if (d1->new.from < d2->new.from) { in merge()
449 d2->old.from -= d2->new.from - d1->new.from; in merge()
450 d2->new.from = d1->new.from; in merge()
451 } else if (d2->new.from < d1->new.from) { in merge()
452 d1->old.from -= d1->new.from - d2->new.from; in merge()
453 d1->new.from = d2->new.from; in merge()
455 if (d1->new.to > d2->new.to) { in merge()
456 d2->old.to += d1->new.to - d2->new.to; in merge()
457 d2->new.to = d1->new.to; in merge()
458 } else if (d2->new.to > d1->new.to) { in merge()
459 d1->old.to += d2->new.to - d1->new.to; in merge()
460 d1->new.to = d2->new.to; in merge()
488 last[i] = rold->to; in change()
492 i--; in change()
493 skip(i, rold->from, NULL); in change()
494 skip(i, rold->to, " "); in change()
505 if (rold->to <= rold->from) in prange()
506 printf("%da\n", rold->from - 1); in prange()
508 printf("%d", rold->from); in prange()
509 if (rold->to > rold->from + 1) in prange()
510 printf(",%d", rold->to - 1); in prange()
529 delta = last[3] - last[i]; in keep()
530 trange.from = rnew->from - delta; in keep()
531 trange.to = rnew->to - delta; in keep()
536 * skip to just before line number from in file "i". If "pr" is non-NULL,
545 for (n = 0; cline[i] < from - 1; n += j) { in skip()
566 if (r1->to-r1->from != r2->to-r2->from) in duplicate()
568 skip(0, r1->from, NULL); in duplicate()
569 skip(1, r2->from, NULL); in duplicate()
571 for (nline = 0; nline < r1->to - r1->from; nline++) { in duplicate()
575 if (c == -1 && d == -1) in duplicate()
577 if (c == -1 || d == -1) in duplicate()
596 (void)fseek(fp[i], (long)-nchar, SEEK_CUR); in repos()
617 de[j].line = strdup(diff->line); in edit()
620 de[j].old.from = diff->old.from; in edit()
621 de[j].old.to = diff->old.to; in edit()
622 de[j].new.from = diff->new.from; in edit()
623 de[j].new.to = diff->new.to; in edit()
635 if (r->from == r->to) in printrange()
638 if (r->from > r->to) in printrange()
642 * XXX-THJ: We read through all of the file for each range printed. in printrange()
648 if (i >= r->from) in printrange()
650 if (++i > r->to - 1) in printrange()
663 for (; n > 0; n--) { in edscript()
667 delete = (new->from == new->to); in edscript()
670 printf("%dd\n", new->from - 1); in edscript()
671 else if (old->from == new->from && old->to == new->to) { in edscript()
672 printf("%dc\n", old->from); in edscript()
681 printf("%da\n", old->to - 1); in edscript()
690 printf("%da\n%s %s\n.\n", old->from - 1, in edscript()
716 for (; n > 0; n--) { in Ascript()
719 deletenew = (new->from == new->to); in Ascript()
720 deleteold = (old->from == old->to); in Ascript()
727 startmark = new->to - 1; in Ascript()
734 printf("%da\n", startmark - in Ascript()
735 (new->to - new->from)); in Ascript()
743 startmark = old->to - 1; in Ascript()
754 r.from = old->from-1; in Ascript()
755 r.to = new->to; in Ascript()
775 startmark - (old->to - old->from), in Ascript()
809 delete = (new->from == new->to); in mergescript()
811 r.to = new->from - 1; in mergescript()
812 else if (de[n].type == DIFF_TYPE3 && (old->from == old->to)) { in mergescript()
813 r.from = old->from - 1; in mergescript()
814 r.to = new->from; in mergescript()
816 r.to = old->from; in mergescript()
842 if (old->from == old->to) { in mergescript()
844 or.from = old->from - 1; in mergescript()
845 or.to = new->to; in mergescript()
859 printf("Error: Unhandled diff type - exiting\n"); in mergescript()
863 if (old->from == old->to) in mergescript()
864 r.from = new->to; in mergescript()
866 r.from = old->to; in mergescript()
877 new = &de[n-1].new; in mergescript()
878 old = &de[n-1].old; in mergescript()
880 if (old->from == new->from && old->to == new->to) in mergescript()
881 r.from--; in mergescript()
882 else if (new->from == new->to) in mergescript()
883 r.from = old->from; in mergescript()
899 incr = newsz - szchanges; in increase()
943 while ((ch = getopt_long(argc, argv, OPTIONS, longopts, NULL)) != -1) { in main()
949 diffargv[diffargc++] = __DECONST(char *, "-a"); in main()
990 diffargv[diffargc++] = __DECONST(char *, "--strip-trailing-cr"); in main()
1000 argc -= optind; in main()
1014 if (caph_limit_stdio() == -1) in main()
1020 if (kq == -1) in main()
1076 if (kevent(kq, e + nleft, 1, NULL, 0, NULL) == -1) in main()
1083 if (kevent(kq, e + nleft, 1, NULL, 0, NULL) == -1) in main()
1099 if (nke == -1) in main()
1109 nleft -= nke; in main()