Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ diff(1) — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bdiff(1)

cmp(1)

comm(1)

ed(1)

pr(1)



DIFF(1)             RISC/os Reference Manual              DIFF(1)



NAME
     diff - differential file comparator

SYNOPSIS
     diff [ [-b][-i]-t][-w] ] [ -c|-e|-f |-h|-n ] filename1
     filename2
     diff [ [-b][-i]-t][-w] ] [ -C number ] filename1 filename2
     diff [ [-b][-i]-t][-w] ] [ -D string ] filename1 filename2
     diff [ [-b][-i]-t][-w] ] [ -c|-e| -f|-h|-n ] [-l] [-r] [-s]
     [ -S name ] directory1 directory2

DESCRIPTION
     diff tells what lines must be changed in two files to bring
     them into agreement.  If filename1 (filename2) is -, the
     standard input is used.  If filename1 (filename2) is a
     directory, then a file in that directory with the name
     filename2 (filename1) is used.  The normal output contains
     lines of these forms:

          n1 a n3,n4
          n1,n2 d n3
          n1,n2 c n3,n4

     These lines resemble ed commands to convert filename1 into
     filename2.  The numbers after the letters pertain to
     filename2.  In fact, by exchanging a for d and reading back-
     ward one may ascertain equally how to convert filename2 into
     filename1.  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 >.

     b    Ignores trailing blanks (spaces and tabs) and treats
          other strings of blanks as equivalent.

     i    Ignores the case of letters; for example, A compares
          equally to a.

     t    Expands TAB characters in output lines.  Normal or c
          output adds character(s) to the front of each line that
          may adversely affect the indentation of the original
          source lines and make the output lines difficult to
          interpret.  This option will preserve the original
          source's indentation.

     w    Ignores all blanks (SPACE and TAB characters) and
          treats all other strings of blanks as equivalent; for
          example, if ( a == b ) compares equally to if(a==b).





                        Printed 11/19/92                   Page 1





DIFF(1)             RISC/os Reference Manual              DIFF(1)



     The following options are mutually exclusive:

     c    Produces a listing of differences with three lines of
          context.  With this option output format is modified
          slightly:  output begins with identification of the
          files involved and their creation dates, then each
          change is separated by a line with a dozen *'s.  The
          lines removed from filename1 are marked with -; those
          added to filename2 are marked +.  Lines that are
          changed from one file to the other are marked in both
          files with !.

     C number
          Produces a listing of differences identical to that
          produced by c with number lines of context.

     e    Produces a script of a, c, and d commands for the edi-
          tor ed, which will recreate filename2 from filename1.
          In connection with e, the following shell program may
          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 diff need be on hand.  A
          latest version appears on the standard output.

          (shift; cat $*; echo '1,$p') | ed - $1

     Except in rare circumstances, diff finds a smallest suffi-
     cient set of file differences.

     f    Produces a similar script, not useful with ed, in the
          opposite order.

     h    Does a fast, half-hearted job.  It works only when
          changed stretches are short and well separated, but
          does work on files of unlimited length.  Options e and
          f are unavailable with h.

     n    Produces a script similar to e, but in the opposite
          order and with a count of changed lines on each insert
          or delete command.

     D string
          Creates a merged version of filename1 and filename2
          with C preprocessor controls included so that a compi-
          lation of the result without defining string is
          equivalent to compiling filename1, while defining
          string will yield filename2.

     The following options are used for comparing directories:

     l    Produce output in long format.  Before the diff, each
          text file is piped through pr(1) to paginate it.  Other



 Page 2                 Printed 11/19/92





DIFF(1)             RISC/os Reference Manual              DIFF(1)



          differences are remembered and summarized after all
          text file differences are reported.

     r    Applies diff recursively to common subdirectories
          encountered.

     s    Reports files that are the identical; these would not
          otherwise be mentioned.

     S name
          Starts a directory diff in the middle, beginning with
          the file name.

FILES
     /tmp/d?????
     /usr/lib/diffh for -h
     /usr/bin/pr

SEE ALSO
     bdiff(1), cmp(1), comm(1), ed(1), pr(1).

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

NOTES
     Editing scripts produced under the e or f option are naive
     about creating lines consisting of a single period (.).

     Missing newline at end of file X
     indicates that the last line of file X did not have a new-
     line.  If the lines are different, they will be flagged and
     output; although the output will seem to indicate they are
     the same.





















                        Printed 11/19/92                   Page 3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026