Contents of the CDIFF.DOC file
C-Diff is a differential file comparer.
C-Diff [ -befh ] file1 file2
C-Diff tells what lines must be changed in two files to
bring them into agreement. If file1 (file2) is -, the
standard input is used. If file1 (file2) is a directory,
then a file in that directory whose filename is the same as
the filename of file2 (file1) is used. The normal output
contains lines in these forms:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
These lines resemble ed(1) commands to convert file1
into file2. The numbers after the letters pertain to file2.
By exchanging a for d and reading backward, conversion of
file2 into file1 is given. As in ed, identical pairs where
n1 = n2 or n3 = n4 are abbreviated as a single number.
Following each of these lines come all the lines that
are affected in the first file flagged by <, then all the
lines that are affected in the second file flagged by >.
Except in rare circumstances, C-Diff finds the smallest
sufficient set of file differences.
-b Causes trailing blanks (spaces and tabs) to be
ignored and other strings of blanks to compare
-e Produces a script of a, c, and d commands for
the editor ed, which recreates file2 from file1.
-f Produces a similar script, not useful with ed,
in the opposite order.
In connection with -e, the following shell program can
help maintain multiple versions of a file. Only an ancestral
file ($1) and a chain of version-to-version ed scripts
($2,$3,...) made by C-Diff need be on hand. The latest
version appears on the standard output.
(shift; cat $*; echo '1,$p') | ed - $1
-h Does a fast, but incomplete job. It works
only when changed parts are short and well
Options -e and -f are unavailable with -h.
% cat list1 % cat list2
% C-Diff list1 list2
Exit status is 0 for no differences, 1 for some, 2
Edited scripts produced under the -e or -f option are
unable to create lines consisting of a single period
(.). The script file is produced, but it will
produce incorrect results if run under ed.