1 User-visible changes in version 2.7:
3 * New diff option: --binary (useful only on non-Posix hosts)
4 * diff -b and -w now ignore line incompleteness; -B no longer does this.
5 * cmp -c now uses locale to decide which output characters to quote.
6 * Help and version messages are reorganized.
9 User-visible changes in version 2.6:
11 * New cmp, diff, diff3, sdiff option: --help
12 * A new heuristic for diff greatly reduces the time needed to compare
13 large input files that contain many differences.
14 * Partly as a result, GNU diff's output is not exactly the same as before.
15 Usually it is a bit smaller, but sometimes it is a bit larger.
18 User-visible changes in version 2.5:
20 * New cmp option: -v --version
23 User-visible changes in version 2.4:
25 * New cmp option: --ignore-initial=BYTES
26 * New diff3 option: -T --initial-tab
27 * New diff option: --line-format=FORMAT
28 * New diff group format specifications:
29 <PRINTF_SPEC>[eflmnEFLMN]
30 A printf spec followed by one of the following letters
31 causes the integer corresponding to that letter to be
32 printed according to the printf specification.
33 E.g. `%5df' prints the number of the first line in the
34 group in the old file using the "%5d" format.
35 e: line number just before the group in old file; equals f - 1
36 f: first line number in group in the old file
37 l: last line number in group in the old file
38 m: line number just after the group in old file; equals l + 1
39 n: number of lines in group in the old file; equals l - f + 1
40 E, F, L, M, N: likewise, for lines in the new file
42 If A equals B then T else E. A and B are each either a decimal
43 constant or a single letter interpreted as above. T and E are
44 arbitrary format strings. This format spec is equivalent to T if
45 A's value equals B's; otherwise it is equivalent to E. For
46 example, `%(N=0?no:%dN) line%(N=1?:s)' is equivalent to `no lines'
47 if N (the number of lines in the group in the the new file) is 0,
48 to `1 line' if N is 1, and to `%dN lines' otherwise.
50 where C is a single character, stands for the character C. C may not
51 be a backslash or an apostrophe. E.g. %c':' stands for a colon.
53 where O is a string of 1, 2, or 3 octal digits, stands for the
54 character with octal code O. E.g. %c'\0' stands for a null character.
55 * New diff line format specifications:
57 The line number, printed with <PRINTF_SPEC>.
58 E.g. `%5dn' prints the line number with a "%5d" format.
61 The character C, or with octal code O, as above.
62 * Supported <PRINTF_SPEC>s have the same meaning as with printf, but must
63 match the extended regular expression %-*[0-9]*(\.[0-9]*)?[doxX].
64 * The format spec %0 introduced in version 2.1 has been removed, since it
65 is incompatible with printf specs like %02d. To represent a null char,
67 * cmp and diff now conform to Posix.2 (ISO/IEC 9945-2:1993)
68 if the underlying system conforms to Posix:
69 - Some messages' wordings are changed in minor ways.
70 - ``White space'' is now whatever C's `isspace' says it is.
71 - When comparing directories, if `diff' finds a file that is not a regular
72 file or a directory, it reports the file's type instead of diffing it.
73 (As usual, it follows symbolic links first.)
74 - When signaled, sdiff exits with the signal's status, not with status 2.
75 * Now portable to hosts where int, long, pointer, etc. are not all the same
77 * `cmp - -' now works like `diff - -'.
80 User-visible changes in version 2.3:
82 * New diff option: --horizon-lines=lines
85 User-visible changes in version 2.1:
88 --{old,new,unchanged}-line-format='format'
89 --{old,new,unchanged,changed}-group-format='format'
93 * diff3 -m now defaults to -A, not -E.
94 * diff3 now takes up to three -L or --label options, not just two.
95 If just two options are given, they refer to the first two input files,
96 not the first and third input files.
97 * sdiff and diff -y handle incomplete lines.
100 User-visible changes in version 2.0:
102 * Add sdiff and cmp programs.
103 * Add Texinfo documentation.
104 * Add configure script.
105 * Improve diff performance.
109 -P --unidirectional-new-file
114 --suppress-common-lines
115 * diff options renamed:
116 --label renamed from --file-label
117 --forward-ed renamed from --reversed-ed
118 --paginate renamed from --print
119 --entire-new-file renamed from --entire-new-files
120 --new-file renamed from --new-files
124 * Add long-named equivalents for other diff3 options.
125 * diff options -F (--show-function-line) and -I (--ignore-matching-lines)
126 can now be given more than once.