ddiiffff -- Command

Summarize differences between two files
ddiiffff [-bbddeeffhh] [-cc _s_y_m_b_o_l] _f_i_l_e_1 _f_i_l_e_2

ddiiffff compares _f_i_l_e_1 with _f_i_l_e_2, and  prints a summary of the changes needed
to turn _f_i_l_e_1 into _f_i_l_e_2.

Two options  involve input file  specification.  First, the  standard input
may be  specified in place of  a file by entering a hyphen  `-' in place of
_f_i_l_e_1 or  _f_i_l_e_2. Second, if  _f_i_l_e_1 is a  directory, ddiiffff looks  within that
directory for a  file that has the same name  as _f_i_l_e_2, then compares _f_i_l_e_2
with the file of the same name in directory _f_i_l_e_1.

The default output script has lines in the following format:

    1,2 c 3,4

The numbers _1,_2 refer to line  ranges in _f_i_l_e_1, and _3,_4 to ranges in _f_i_l_e_2.
The range is abbreviated to a single number if the first number is the same
as the  second.  The command _c  was chosen from among  the eedd commands `_a',
`_c', and `_d'.  ddiiffff then prints  the text from each of the two files.  Text
associated with _f_i_l_e_1 is preceded by `< ',  whereas  text  associated  with
_f_i_l_e_2 is preceded by `>'.

The following summarizes ddiiffff's options.

-bb Ignore trailing blanks and treat more than one blank in an input line as
   a single  blank.  Spaces and tabs  are considered to be  blanks for this
   comparison.

-cc _s_y_m_b_o_l
   Produce output suitable for  the C preprocessor ccpppp; the output contains
   #iiffddeeff, #iiffnnddeeff, #eellssee,  and #eennddiiff lines.  _s_y_m_b_o_l is the string used to
   build the #iiffddeeff statements.  If you define _s_y_m_b_o_l to the C preprocessor
   ccpppp, it  will produce  _f_i_l_e_2 as its  output; otherwise, it  will produce
   _f_i_l_e_1. This option does _n_o_t  work for files that already contain #iiffddeeff,
   #iiffnnddeeff, #eellssee, and #eennddiiff statements.

-ee Create an eedd script that will convert _f_i_l_e_1 into _f_i_l_e_2.

-ff Produce a  script in  the same  manner as the  -ee option, but  with line
   numbers  taken  directly  from the  two  input  files.   This will  work
   properly  only if  applied  from end  to  beginning; it  cannot be  used
   directly by eedd.

-hh Compare large  files that  have a  minimal number of  differences.  This
   option uses an algorithm that is not limited by file length, but may not
   discover all differences.

-dd Select  the  -hh  algorithm only  for  files  larger  than 25,000  bytes;
   otherwise, use the normal algorithm.

_E_x_a_m_p_l_e
For an  example of a script  that uses this command,  see the Lexicon entry
for ttrraapp.

_S_e_e _A_l_s_o
eedd, eeggrreepp, ccoommmmaannddss

_D_i_a_g_n_o_s_t_i_c_s
ddiiffff's exit status is zero when  the files are identical, one when they are
different, and  two if a  problem was encountered  (e.g., could not  open a
file).

_N_o_t_e_s
ddiiffff cannot handle files with more  than 32,000 lines.  Handing ddiiffff a file
that  exceeds that  limit will  cause it to  fail, with  unpredictable side
effects.
