xref: /freebsd-src/contrib/diff/NEWS (revision 18fd37a72c3a7549d2d4f6c6ea00bdcd2bdaca01)
1*18fd37a7SXin LIVersion 2.8.7 contains no user-visible changes.
2*18fd37a7SXin LI
3*18fd37a7SXin LIUser-visible changes in version 2.8.6:
4*18fd37a7SXin LI
5*18fd37a7SXin LI* New diff3 option --strip-trailing-cr.
6*18fd37a7SXin LI
7*18fd37a7SXin LI* With -N and -P, inaccessible empty regular files (the kind of files
8*18fd37a7SXin LI  that 'patch' creates to indicate nonexistent backups) are now
9*18fd37a7SXin LI  treated as nonexistent when they are in the 'backup' file position.
10*18fd37a7SXin LI
11*18fd37a7SXin LI* If multiple SKIP values are given to cmp, e.g., `cmp -i 10 -i 20',
12*18fd37a7SXin LI  cmp now uses the maximal value instead of the last one.
13*18fd37a7SXin LI
14*18fd37a7SXin LI* diff now omits the ".000000000" on hosts that do not support
15*18fd37a7SXin LI  fractional time stamps.
16*18fd37a7SXin LI
17*18fd37a7SXin LIVersion 2.8.5 was not publicly released.
18*18fd37a7SXin LI
19*18fd37a7SXin LIUser-visible changes in version 2.8.4:
20*18fd37a7SXin LI
21*18fd37a7SXin LI* Diff now simply prints "Files A and B differ" instead of "Binary
22*18fd37a7SXin LI  files A and B differ".  The message is output if either A or B
23*18fd37a7SXin LI  appears to be a binary file, and the old wording was misleading
24*18fd37a7SXin LI  because it implied that both files are binary, which is not
25*18fd37a7SXin LI  necessarily the case.
26*18fd37a7SXin LI
27*18fd37a7SXin LIUser-visible changes in version 2.8.3:
28*18fd37a7SXin LI
29*18fd37a7SXin LI* New locale: en_US.
30*18fd37a7SXin LI
31*18fd37a7SXin LIUser-visible changes in version 2.8.2:
32*18fd37a7SXin LI
33*18fd37a7SXin LI* New diff and sdiff option:
34*18fd37a7SXin LI  --tabsize=COLUMNS
35*18fd37a7SXin LI* If --ignore-space-change or --ignore-all-space is also specified,
36*18fd37a7SXin LI  --ignore-blank-lines now considers lines to be empty if they contain
37*18fd37a7SXin LI  only white space.
38*18fd37a7SXin LI* More platforms now handle multibyte characters correctly when
39*18fd37a7SXin LI  excluding files by name (diff -x and -X).
40*18fd37a7SXin LI* New locales: hu, pt_BR.
41*18fd37a7SXin LI
42*18fd37a7SXin LIUser-visible changes in version 2.8.1:
43*18fd37a7SXin LI
44*18fd37a7SXin LI* Documentation fixes.
45*18fd37a7SXin LI
46*18fd37a7SXin LIUser-visible changes in version 2.8:
47*18fd37a7SXin LI
48*18fd37a7SXin LI* cmp and diff now conform to POSIX 1003.1-2001 (IEEE Std 1003.1-2001)
49*18fd37a7SXin LI  if the underlying system conforms to POSIX and if the _POSIX2_VERSION
50*18fd37a7SXin LI  environment variable is set to 200112.  Conformance removes support
51*18fd37a7SXin LI  for `diff -NUM', where NUM is a number.  Use -C NUM or -U NUM instead.
52*18fd37a7SXin LI* cmp now supports trailing operands SKIP1 and SKIP2, like BSD cmp.
53*18fd37a7SXin LI* cmp -i or --ignore-initial now accepts SKIP1:SKIP2 option value.
54*18fd37a7SXin LI* New cmp option: -n or --bytes.
55*18fd37a7SXin LI* cmp's old -c or --print-chars option has been renamed;
56*18fd37a7SXin LI  use -b or --print-bytes instead.
57*18fd37a7SXin LI* cmp now outputs "byte" rather than "char" outside the POSIX locale.
58*18fd37a7SXin LI* cmp -l's index column width now adjusts to fit larger (or smaller) files.
59*18fd37a7SXin LI* cmp -l -s and cmp -s -l are not allowed.  Use cmp -s or cmp -l instead.
60*18fd37a7SXin LI* diff uses ISO 8601 style time stamps for output times (e.g. "2001-11-23
61*18fd37a7SXin LI  16:44:36.875702460 -0800") unless in the C or POSIX locale and the
62*18fd37a7SXin LI  -c style is specified.
63*18fd37a7SXin LI* diff's -I and -F options use the regexp syntax of grep, not of Emacs.
64*18fd37a7SXin LI* diff now accepts multiple context arguments, and uses their maximum value.
65*18fd37a7SXin LI* New diff and sdiff options:
66*18fd37a7SXin LI  -E  --ignore-tab-expansion
67*18fd37a7SXin LI  --strip-trailing-cr
68*18fd37a7SXin LI* New diff options:
69*18fd37a7SXin LI  --from-file=FILE, --to-file=FILE
70*18fd37a7SXin LI  --ignore-file-name-case
71*18fd37a7SXin LI  --no-ignore-file-name-case
72*18fd37a7SXin LI* New diff3 and sdiff option:
73*18fd37a7SXin LI  --diff-program=PROGRAM
74*18fd37a7SXin LI* The following diff options are still accepted, but are no longer documented.
75*18fd37a7SXin LI  They may be withdrawn in future releases.
76*18fd37a7SXin LI  -h (omit; it has no effect)
77*18fd37a7SXin LI  -H (use --speed-large-files instead)
78*18fd37a7SXin LI  -L (use --label instead)
79*18fd37a7SXin LI  -P (use --unidirectional-new-file instead)
80*18fd37a7SXin LI  --inhibit-hunk-merge (omit; it has no effect)
81*18fd37a7SXin LI* Recursive diffs now sort file names according to the LC_COLLATE locale
82*18fd37a7SXin LI  category if possible, instead of using native byte comparison.
83*18fd37a7SXin LI* Recursive diffs now detect and report directory loops.
84*18fd37a7SXin LI* Diff printf specs can now use the "0" and "'" flags.
85*18fd37a7SXin LI* The new sdiff interactive command `ed' precedes each version with a header.
86*18fd37a7SXin LI* On 64-bit hosts, files larger than 2 GB can be compared.
87*18fd37a7SXin LI* Some internationalization support has been added, but multibyte locales
88*18fd37a7SXin LI  are still not completely supported yet.
89*18fd37a7SXin LI* Some diagnostics have been reworded slightly for consistency.
90*18fd37a7SXin LI  Also, `diff -D FOO' now outputs `/* ! FOO */' instead of `/* not FOO */'.
91*18fd37a7SXin LI* The `patch' part of the manual now describes `patch' version 2.5.4.
92*18fd37a7SXin LI* Man pages are now distributed and installed.
93*18fd37a7SXin LI* There is support for DJGPP; see the 'ms' subdirectory and the files
94*18fd37a7SXin LI  m4/dos.m4 and */setmode.*.
95*18fd37a7SXin LI
96*18fd37a7SXin LI
97f5e00e24SAndrey A. ChernovUser-visible changes in version 2.7:
98f5e00e24SAndrey A. Chernov
99*18fd37a7SXin LI* New diff option: --binary (useful only on non-POSIX hosts)
100f5e00e24SAndrey A. Chernov* diff -b and -w now ignore line incompleteness; -B no longer does this.
101f5e00e24SAndrey A. Chernov* cmp -c now uses locale to decide which output characters to quote.
102f5e00e24SAndrey A. Chernov* Help and version messages are reorganized.
103f5e00e24SAndrey A. Chernov
104f5e00e24SAndrey A. Chernov
105f5e00e24SAndrey A. ChernovUser-visible changes in version 2.6:
106f5e00e24SAndrey A. Chernov
107f5e00e24SAndrey A. Chernov* New cmp, diff, diff3, sdiff option: --help
108f5e00e24SAndrey A. Chernov* A new heuristic for diff greatly reduces the time needed to compare
109f5e00e24SAndrey A. Chernov  large input files that contain many differences.
110f5e00e24SAndrey A. Chernov* Partly as a result, GNU diff's output is not exactly the same as before.
111f5e00e24SAndrey A. Chernov  Usually it is a bit smaller, but sometimes it is a bit larger.
112f5e00e24SAndrey A. Chernov
113f5e00e24SAndrey A. Chernov
114f5e00e24SAndrey A. ChernovUser-visible changes in version 2.5:
115f5e00e24SAndrey A. Chernov
116f5e00e24SAndrey A. Chernov* New cmp option: -v --version
117f5e00e24SAndrey A. Chernov
118f5e00e24SAndrey A. Chernov
119f5e00e24SAndrey A. ChernovUser-visible changes in version 2.4:
120f5e00e24SAndrey A. Chernov
121f5e00e24SAndrey A. Chernov* New cmp option: --ignore-initial=BYTES
122f5e00e24SAndrey A. Chernov* New diff3 option: -T --initial-tab
123f5e00e24SAndrey A. Chernov* New diff option: --line-format=FORMAT
124f5e00e24SAndrey A. Chernov* New diff group format specifications:
125f5e00e24SAndrey A. Chernov  <PRINTF_SPEC>[eflmnEFLMN]
126f5e00e24SAndrey A. Chernov      A printf spec followed by one of the following letters
127f5e00e24SAndrey A. Chernov      causes the integer corresponding to that letter to be
128f5e00e24SAndrey A. Chernov      printed according to the printf specification.
129f5e00e24SAndrey A. Chernov      E.g. `%5df' prints the number of the first line in the
130f5e00e24SAndrey A. Chernov      group in the old file using the "%5d" format.
131f5e00e24SAndrey A. Chernov	e: line number just before the group in old file; equals f - 1
132f5e00e24SAndrey A. Chernov	f: first line number in group in the old file
133f5e00e24SAndrey A. Chernov	l: last line number in group in the old file
134f5e00e24SAndrey A. Chernov	m: line number just after the group in old file; equals l + 1
135f5e00e24SAndrey A. Chernov	n: number of lines in group in the old file; equals l - f + 1
136f5e00e24SAndrey A. Chernov	E, F, L, M, N: likewise, for lines in the new file
137f5e00e24SAndrey A. Chernov  %(A=B?T:E)
138f5e00e24SAndrey A. Chernov      If A equals B then T else E.  A and B are each either a decimal
139f5e00e24SAndrey A. Chernov      constant or a single letter interpreted as above.  T and E are
140f5e00e24SAndrey A. Chernov      arbitrary format strings.  This format spec is equivalent to T if
141f5e00e24SAndrey A. Chernov      A's value equals B's; otherwise it is equivalent to E.  For
142f5e00e24SAndrey A. Chernov      example, `%(N=0?no:%dN) line%(N=1?:s)' is equivalent to `no lines'
143f5e00e24SAndrey A. Chernov      if N (the number of lines in the group in the the new file) is 0,
144f5e00e24SAndrey A. Chernov      to `1 line' if N is 1, and to `%dN lines' otherwise.
145f5e00e24SAndrey A. Chernov  %c'C'
146f5e00e24SAndrey A. Chernov      where C is a single character, stands for the character C.  C may not
147f5e00e24SAndrey A. Chernov      be a backslash or an apostrophe.  E.g. %c':' stands for a colon.
148f5e00e24SAndrey A. Chernov  %c'\O'
149f5e00e24SAndrey A. Chernov      where O is a string of 1, 2, or 3 octal digits, stands for the
150f5e00e24SAndrey A. Chernov      character with octal code O.  E.g. %c'\0' stands for a null character.
151f5e00e24SAndrey A. Chernov* New diff line format specifications:
152f5e00e24SAndrey A. Chernov  <PRINTF_SPEC>n
153f5e00e24SAndrey A. Chernov      The line number, printed with <PRINTF_SPEC>.
154f5e00e24SAndrey A. Chernov      E.g. `%5dn' prints the line number with a "%5d" format.
155f5e00e24SAndrey A. Chernov  %c'C'
156f5e00e24SAndrey A. Chernov  %c'\O'
157f5e00e24SAndrey A. Chernov      The character C, or with octal code O, as above.
158f5e00e24SAndrey A. Chernov* Supported <PRINTF_SPEC>s have the same meaning as with printf, but must
159f5e00e24SAndrey A. Chernov  match the extended regular expression %-*[0-9]*(\.[0-9]*)?[doxX].
160f5e00e24SAndrey A. Chernov* The format spec %0 introduced in version 2.1 has been removed, since it
161f5e00e24SAndrey A. Chernov  is incompatible with printf specs like %02d.  To represent a null char,
162f5e00e24SAndrey A. Chernov  use %c'\0' instead.
163*18fd37a7SXin LI* cmp and diff now conform to POSIX 1003.2-1992 (ISO/IEC 9945-2:1993)
164*18fd37a7SXin LI  if the underlying system conforms to POSIX:
165f5e00e24SAndrey A. Chernov  - Some messages' wordings are changed in minor ways.
166f5e00e24SAndrey A. Chernov  - ``White space'' is now whatever C's `isspace' says it is.
167f5e00e24SAndrey A. Chernov  - When comparing directories, if `diff' finds a file that is not a regular
168f5e00e24SAndrey A. Chernov    file or a directory, it reports the file's type instead of diffing it.
169f5e00e24SAndrey A. Chernov    (As usual, it follows symbolic links first.)
170f5e00e24SAndrey A. Chernov  - When signaled, sdiff exits with the signal's status, not with status 2.
171f5e00e24SAndrey A. Chernov* Now portable to hosts where int, long, pointer, etc. are not all the same
172f5e00e24SAndrey A. Chernov  size.
173f5e00e24SAndrey A. Chernov* `cmp - -' now works like `diff - -'.
174f5e00e24SAndrey A. Chernov
175f5e00e24SAndrey A. Chernov
176f5e00e24SAndrey A. ChernovUser-visible changes in version 2.3:
177f5e00e24SAndrey A. Chernov
178f5e00e24SAndrey A. Chernov* New diff option: --horizon-lines=lines
179f5e00e24SAndrey A. Chernov
180f5e00e24SAndrey A. Chernov
181f5e00e24SAndrey A. ChernovUser-visible changes in version 2.1:
182f5e00e24SAndrey A. Chernov
183f5e00e24SAndrey A. Chernov* New diff options:
184f5e00e24SAndrey A. Chernov  --{old,new,unchanged}-line-format='format'
185f5e00e24SAndrey A. Chernov  --{old,new,unchanged,changed}-group-format='format'
186f5e00e24SAndrey A. Chernov  -U
187f5e00e24SAndrey A. Chernov* New diff3 option:
188f5e00e24SAndrey A. Chernov  -A --show-all
189f5e00e24SAndrey A. Chernov* diff3 -m now defaults to -A, not -E.
190f5e00e24SAndrey A. Chernov* diff3 now takes up to three -L or --label options, not just two.
191f5e00e24SAndrey A. Chernov  If just two options are given, they refer to the first two input files,
192f5e00e24SAndrey A. Chernov  not the first and third input files.
193f5e00e24SAndrey A. Chernov* sdiff and diff -y handle incomplete lines.
194f5e00e24SAndrey A. Chernov
195f5e00e24SAndrey A. Chernov
196f5e00e24SAndrey A. ChernovUser-visible changes in version 2.0:
197f5e00e24SAndrey A. Chernov
198f5e00e24SAndrey A. Chernov* Add sdiff and cmp programs.
199f5e00e24SAndrey A. Chernov* Add Texinfo documentation.
200f5e00e24SAndrey A. Chernov* Add configure script.
201f5e00e24SAndrey A. Chernov* Improve diff performance.
202f5e00e24SAndrey A. Chernov* New diff options:
203f5e00e24SAndrey A. Chernov-x --exclude
204f5e00e24SAndrey A. Chernov-X --exclude-from
205f5e00e24SAndrey A. Chernov-P --unidirectional-new-file
206f5e00e24SAndrey A. Chernov-W --width
207f5e00e24SAndrey A. Chernov-y --side-by-side
208f5e00e24SAndrey A. Chernov--left-column
209f5e00e24SAndrey A. Chernov--sdiff-merge-assist
210f5e00e24SAndrey A. Chernov--suppress-common-lines
211f5e00e24SAndrey A. Chernov* diff options renamed:
212f5e00e24SAndrey A. Chernov--label renamed from --file-label
213f5e00e24SAndrey A. Chernov--forward-ed renamed from --reversed-ed
214f5e00e24SAndrey A. Chernov--paginate renamed from --print
215f5e00e24SAndrey A. Chernov--entire-new-file renamed from --entire-new-files
216f5e00e24SAndrey A. Chernov--new-file renamed from --new-files
217f5e00e24SAndrey A. Chernov--all-text removed
218f5e00e24SAndrey A. Chernov* New diff3 options:
219f5e00e24SAndrey A. Chernov-v --version
220f5e00e24SAndrey A. Chernov* Add long-named equivalents for other diff3 options.
221f5e00e24SAndrey A. Chernov* diff options -F (--show-function-line) and -I (--ignore-matching-lines)
222f5e00e24SAndrey A. Chernov  can now be given more than once.
223*18fd37a7SXin LI
224*18fd37a7SXin LI
225*18fd37a7SXin LI
226*18fd37a7SXin LICopyright (C) 1993, 1994, 1998, 2001, 2002, 2004 Free Software
227*18fd37a7SXin LIFoundation, Inc.
228*18fd37a7SXin LI
229*18fd37a7SXin LIThis file is part of GNU Diffutils.
230*18fd37a7SXin LI
231*18fd37a7SXin LIThis program is free software; you can redistribute it and/or modify
232*18fd37a7SXin LIit under the terms of the GNU General Public License as published by
233*18fd37a7SXin LIthe Free Software Foundation; either version 2, or (at your option)
234*18fd37a7SXin LIany later version.
235*18fd37a7SXin LI
236*18fd37a7SXin LIThis program is distributed in the hope that they will be useful,
237*18fd37a7SXin LIbut WITHOUT ANY WARRANTY; without even the implied warranty of
238*18fd37a7SXin LIMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
239*18fd37a7SXin LIGNU General Public License for more details.
240*18fd37a7SXin LI
241*18fd37a7SXin LIYou should have received a copy of the GNU General Public License
242*18fd37a7SXin LIalong with this program; see the file COPYING.  If not, write to
243*18fd37a7SXin LIthe Free Software Foundation, Inc., 59 Temple Place - Suite 330,
244*18fd37a7SXin LIBoston, MA 02111-1307, USA.
245