groff 1.23.0 added .MR to its -man macro package. The NEWS file states
that the inclusion of the macro "was prompted by its introduction to
Plan 9 from User Space's troff in August 2020." From d32deab it seems
that the name for Plan 9 from User Space's implementation was suggested
by groff maintainer G. Brandon Robinson.
Not sure if the intention was to make these definitions compatible, but
it would be nice if they were.
Currently, Plan 9 from User Space's .MR expects its second argument to
be parenthesized. groff's .MR does not. This results in extra
parentheses appearing in manual references when viewing Plan 9 from User
Space's manual pages on a system using groff.
164 lines
2.9 KiB
Groff
164 lines
2.9 KiB
Groff
.TH DIFF 1
|
|
.SH NAME
|
|
diff \- differential file comparator
|
|
.SH SYNOPSIS
|
|
.B diff
|
|
[
|
|
.B -acefmnbwr
|
|
] file1 ... file2
|
|
.SH DESCRIPTION
|
|
.I Diff
|
|
tells what lines must be changed in two files to bring them
|
|
into agreement.
|
|
If one file
|
|
is a directory,
|
|
then a file in that directory with basename the same as that of
|
|
the other file is used.
|
|
If both files are directories, similarly named files in the
|
|
two directories are compared by the method of
|
|
.I diff
|
|
for text
|
|
files and
|
|
.MR cmp 1
|
|
otherwise.
|
|
If more than two file names are given, then each argument is compared
|
|
to the last argument as above.
|
|
The
|
|
.B -r
|
|
option causes
|
|
.I diff
|
|
to process similarly named subdirectories recursively.
|
|
When processing more than one file,
|
|
.I diff
|
|
prefixes file differences with a single line
|
|
listing the two differing files, in the form of
|
|
a
|
|
.I diff
|
|
command line.
|
|
The
|
|
.B -m
|
|
flag causes this behavior even when processing single files.
|
|
.PP
|
|
The normal output contains lines of these forms:
|
|
.IP "" 5
|
|
.I n1
|
|
.B a
|
|
.I n3,n4
|
|
.br
|
|
.I n1,n2
|
|
.B d
|
|
.I n3
|
|
.br
|
|
.I n1,n2
|
|
.B c
|
|
.I n3,n4
|
|
.PP
|
|
These lines resemble
|
|
.I ed
|
|
commands to convert
|
|
.I file1
|
|
into
|
|
.IR file2 .
|
|
The numbers after the letters pertain to
|
|
.IR file2 .
|
|
In fact, by exchanging `a' for `d' and reading backward
|
|
one may ascertain equally how to convert
|
|
.I file2
|
|
into
|
|
.IR file1 .
|
|
As in
|
|
.IR ed ,
|
|
identical pairs where
|
|
.I n1
|
|
=
|
|
.I n2
|
|
or
|
|
.I n3
|
|
=
|
|
.I n4
|
|
are abbreviated as a single number.
|
|
.PP
|
|
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 `>'.
|
|
.PP
|
|
The
|
|
.B -b
|
|
option causes
|
|
trailing blanks (spaces and tabs) to be ignored
|
|
and other strings of blanks to compare equal.
|
|
The
|
|
.B -w
|
|
option causes all white-space to be removed from input lines
|
|
before applying the difference algorithm.
|
|
.PP
|
|
The
|
|
.B -n
|
|
option prefixes each range with
|
|
.IB file : \fR
|
|
and inserts a space around the
|
|
.BR a ,
|
|
.BR c ,
|
|
and
|
|
.B d
|
|
verbs.
|
|
The
|
|
.B -e
|
|
option produces a script of
|
|
.I "a, c"
|
|
and
|
|
.I d
|
|
commands for the editor
|
|
.IR ed ,
|
|
which will recreate
|
|
.I file2
|
|
from
|
|
.IR file1 .
|
|
The
|
|
.B -f
|
|
option produces a similar script,
|
|
not useful with
|
|
.IR ed ,
|
|
in the opposite order. It may, however, be
|
|
useful as input to a stream-oriented post-processor.
|
|
.PP
|
|
The
|
|
.B -c
|
|
option includes three lines of context around each
|
|
change, merging changes whose contexts overlap.
|
|
The
|
|
.B -a
|
|
flag displays the entire file as context.
|
|
.PP
|
|
Except in rare circumstances,
|
|
.I diff
|
|
finds a smallest sufficient set of file
|
|
differences.
|
|
.SH FILES
|
|
.B /tmp/diff[12]
|
|
.SH SOURCE
|
|
.B \*9/src/cmd/diff
|
|
.SH "SEE ALSO"
|
|
.MR cmp 1 ,
|
|
.MR comm 1 ,
|
|
.MR ed 1
|
|
.SH DIAGNOSTICS
|
|
Exit status is the empty string
|
|
for no differences,
|
|
.L some
|
|
for some,
|
|
and
|
|
.L error
|
|
for trouble.
|
|
.SH BUGS
|
|
Editing scripts produced under the
|
|
.BR -e " or"
|
|
.BR -f " option are naive about"
|
|
creating lines consisting of a single `\fB.\fR'.
|
|
.PP
|
|
When running
|
|
.I diff
|
|
on directories, the notion of what is a text
|
|
file is open to debate.
|