Dec 192017
Compare two files for differences. C Source included.
File FCOMPAR.ZIP from The Programmer’s Corner in
Category C Source Code
Compare two files for differences. C Source included.
File Name File Size Zip Size Zip Type
CDIFF.DOC 3072 1253 deflated
CDIFF.EXE 16640 8461 deflated

Download File FCOMPAR.ZIP Here

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
boat boa
boathouse boar
boatload board
boatman boardinghouse
boatmen boast
boatyard boat

% C-Diff list1 list2
> boa
> boar
> board
> boardinghouse
> boast
< boatyard

Exit status is 0 for no differences, 1 for some, 2
for trouble.

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.

 December 19, 2017  Add comments

Leave a Reply