gdiffmk - mark differences between groff / nroff / troff files

Name  Synopsis  Description  Options  Bugs  Authors  See also 


gdiffmk − mark differences between groff/nroff/troff files



[−a add-mark] [−c change-mark] [−d delete-mark] [−x diff-command] [−D [−B] [−M mark1 mark2]] [−−] file1 file2 [output]






gdiffmk compares two roff(7) documents, file1 and file2, and creates a roff document consisting of file2 with added margin character (.mc) requests indicating output lines that differ from file1. If the file1 or file2 argument is “”, gdiffmk reads the standard input stream for that input. If the output operand is present, gdiffmk writes output to a file of that name. If it is “” or absent, gdiffmk writes output to the standard output stream. “” cannot be both an input and output operand.


−−help displays a usage message and −−version shows version information; both exit afterward.

Use add-mark for source lines not in file1 but present in file2. Default: “+”.


By default, the deleted texts marked by the −D option end with an added roff break request, .br, to ensure that the deletions are marked properly. This is the only way to guarantee that deletions and small changes get flagged. This option directs the program not to insert these breaks; it makes no sense to use it without −D.

−c change-mark

Use change-mark for changed source lines. Default: “|”.

−d delete-mark

Use the delete-mark for deleted source lines. Default: “*”.


Show the deleted portions from changed and deleted text.

−M mark1 mark2

Change the delimiting marks for the −D option. It makes no sense to use this option without −D. Default delimiting marks: “[[” ... “]]”.

−x diff-command

Use the diff-command command to perform the comparison of file1 and file2. In particular, diff-command should accept the GNU diff(1) −D option. Default: diff.


Treat all subsequent arguments as file names, even if they begin with “”.


The output is not necessarily compatible with all macro packages and all preprocessors. A workaround that often overcomes preprocessor problems is to run gdiffmk on the output of all the preprocessors instead of the input source.

gdiffmk relies on the −D option of GNU diff to make a merged “#ifdef” output format. Busybox diff is known to not support it. Also see the −x diff-command option.


gdiffmk was written by Mike Bianchi, now retired. It is maintained by the groff developers.

See also

groff(1), nroff(1), gtroff(1), roff(7), diff(1)

Updated 2024-01-29 - |