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