Index: lib/c-stack.c --- lib/c-stack.c.orig 2010-01-08 11:35:21 +0100 +++ lib/c-stack.c 2010-02-14 14:28:22 +0100 @@ -36,6 +36,10 @@ #include +#if defined(__FreeBSD__) +#include +#endif + #ifndef __attribute__ # if __GNUC__ < 3 # define __attribute__(x) Index: man/diff3.1 --- man/diff3.1.orig 2010-02-11 10:46:59 +0100 +++ man/diff3.1 2010-02-14 14:05:10 +0100 @@ -38,6 +38,9 @@ \fB\-a\fR \fB\-\-text\fR Treat all files as text. .TP +\fB\-O\fR +Always show content of OLDFILE in bracketing output of unmerged changes. (OpenPKG only) +.TP \fB\-\-strip\-trailing\-cr\fR Strip trailing carriage return on input. .TP Index: src/diff3.c --- src/diff3.c.orig 2010-02-11 10:39:17 +0100 +++ src/diff3.c 2010-02-14 14:05:10 +0100 @@ -159,6 +159,9 @@ /* If nonzero, show information for DIFF_2ND diffs. */ static bool show_2nd; +/* If nonzero, show information for DIFF_2ND on overlaps, too. */ +static bool show_2nd_on_overlap; + /* If nonzero, include `:wq' at the end of the script to write out the file being edited. */ static bool finalwrite; @@ -238,7 +241,7 @@ textdomain (PACKAGE); c_stack_action (0); - while ((c = getopt_long (argc, argv, "aeimvx3AEL:TX", longopts, 0)) != -1) + while ((c = getopt_long (argc, argv, "aeimvx3AEL:TXO", longopts, 0)) != -1) { switch (c) { @@ -273,6 +276,9 @@ case 'e': incompat++; break; + case 'O': + show_2nd_on_overlap = true; + break; case 'T': initial_tab = true; break; @@ -1529,7 +1535,7 @@ leading_dot = false; if (type == DIFF_ALL) { - if (show_2nd) + if (show_2nd || show_2nd_on_overlap) { /* Append lines from FILE1. */ fprintf (outputfile, "||||||| %s\n", file1); @@ -1668,7 +1674,7 @@ D_RELLEN (b, mapping[FILE0], i), outputfile); } - if (show_2nd) + if (show_2nd || show_2nd_on_overlap) { /* Put in lines from FILE1 with bracket. */ fprintf (outputfile, format_2nd, file1);