xref: /freebsd/contrib/diff/NEWS (revision 18fd37a72c3a7549d2d4f6c6ea00bdcd2bdaca01)
118fd37a7SXin LIVersion 2.8.7 contains no user-visible changes.
218fd37a7SXin LI
318fd37a7SXin LIUser-visible changes in version 2.8.6:
418fd37a7SXin LI
518fd37a7SXin LI* New diff3 option --strip-trailing-cr.
618fd37a7SXin LI
718fd37a7SXin LI* With -N and -P, inaccessible empty regular files (the kind of files
818fd37a7SXin LI  that 'patch' creates to indicate nonexistent backups) are now
918fd37a7SXin LI  treated as nonexistent when they are in the 'backup' file position.
1018fd37a7SXin LI
1118fd37a7SXin LI* If multiple SKIP values are given to cmp, e.g., `cmp -i 10 -i 20',
1218fd37a7SXin LI  cmp now uses the maximal value instead of the last one.
1318fd37a7SXin LI
1418fd37a7SXin LI* diff now omits the ".000000000" on hosts that do not support
1518fd37a7SXin LI  fractional time stamps.
1618fd37a7SXin LI
1718fd37a7SXin LIVersion 2.8.5 was not publicly released.
1818fd37a7SXin LI
1918fd37a7SXin LIUser-visible changes in version 2.8.4:
2018fd37a7SXin LI
2118fd37a7SXin LI* Diff now simply prints "Files A and B differ" instead of "Binary
2218fd37a7SXin LI  files A and B differ".  The message is output if either A or B
2318fd37a7SXin LI  appears to be a binary file, and the old wording was misleading
2418fd37a7SXin LI  because it implied that both files are binary, which is not
2518fd37a7SXin LI  necessarily the case.
2618fd37a7SXin LI
2718fd37a7SXin LIUser-visible changes in version 2.8.3:
2818fd37a7SXin LI
2918fd37a7SXin LI* New locale: en_US.
3018fd37a7SXin LI
3118fd37a7SXin LIUser-visible changes in version 2.8.2:
3218fd37a7SXin LI
3318fd37a7SXin LI* New diff and sdiff option:
3418fd37a7SXin LI  --tabsize=COLUMNS
3518fd37a7SXin LI* If --ignore-space-change or --ignore-all-space is also specified,
3618fd37a7SXin LI  --ignore-blank-lines now considers lines to be empty if they contain
3718fd37a7SXin LI  only white space.
3818fd37a7SXin LI* More platforms now handle multibyte characters correctly when
3918fd37a7SXin LI  excluding files by name (diff -x and -X).
4018fd37a7SXin LI* New locales: hu, pt_BR.
4118fd37a7SXin LI
4218fd37a7SXin LIUser-visible changes in version 2.8.1:
4318fd37a7SXin LI
4418fd37a7SXin LI* Documentation fixes.
4518fd37a7SXin LI
4618fd37a7SXin LIUser-visible changes in version 2.8:
4718fd37a7SXin LI
4818fd37a7SXin LI* cmp and diff now conform to POSIX 1003.1-2001 (IEEE Std 1003.1-2001)
4918fd37a7SXin LI  if the underlying system conforms to POSIX and if the _POSIX2_VERSION
5018fd37a7SXin LI  environment variable is set to 200112.  Conformance removes support
5118fd37a7SXin LI  for `diff -NUM', where NUM is a number.  Use -C NUM or -U NUM instead.
5218fd37a7SXin LI* cmp now supports trailing operands SKIP1 and SKIP2, like BSD cmp.
5318fd37a7SXin LI* cmp -i or --ignore-initial now accepts SKIP1:SKIP2 option value.
5418fd37a7SXin LI* New cmp option: -n or --bytes.
5518fd37a7SXin LI* cmp's old -c or --print-chars option has been renamed;
5618fd37a7SXin LI  use -b or --print-bytes instead.
5718fd37a7SXin LI* cmp now outputs "byte" rather than "char" outside the POSIX locale.
5818fd37a7SXin LI* cmp -l's index column width now adjusts to fit larger (or smaller) files.
5918fd37a7SXin LI* cmp -l -s and cmp -s -l are not allowed.  Use cmp -s or cmp -l instead.
6018fd37a7SXin LI* diff uses ISO 8601 style time stamps for output times (e.g. "2001-11-23
6118fd37a7SXin LI  16:44:36.875702460 -0800") unless in the C or POSIX locale and the
6218fd37a7SXin LI  -c style is specified.
6318fd37a7SXin LI* diff's -I and -F options use the regexp syntax of grep, not of Emacs.
6418fd37a7SXin LI* diff now accepts multiple context arguments, and uses their maximum value.
6518fd37a7SXin LI* New diff and sdiff options:
6618fd37a7SXin LI  -E  --ignore-tab-expansion
6718fd37a7SXin LI  --strip-trailing-cr
6818fd37a7SXin LI* New diff options:
6918fd37a7SXin LI  --from-file=FILE, --to-file=FILE
7018fd37a7SXin LI  --ignore-file-name-case
7118fd37a7SXin LI  --no-ignore-file-name-case
7218fd37a7SXin LI* New diff3 and sdiff option:
7318fd37a7SXin LI  --diff-program=PROGRAM
7418fd37a7SXin LI* The following diff options are still accepted, but are no longer documented.
7518fd37a7SXin LI  They may be withdrawn in future releases.
7618fd37a7SXin LI  -h (omit; it has no effect)
7718fd37a7SXin LI  -H (use --speed-large-files instead)
7818fd37a7SXin LI  -L (use --label instead)
7918fd37a7SXin LI  -P (use --unidirectional-new-file instead)
8018fd37a7SXin LI  --inhibit-hunk-merge (omit; it has no effect)
8118fd37a7SXin LI* Recursive diffs now sort file names according to the LC_COLLATE locale
8218fd37a7SXin LI  category if possible, instead of using native byte comparison.
8318fd37a7SXin LI* Recursive diffs now detect and report directory loops.
8418fd37a7SXin LI* Diff printf specs can now use the "0" and "'" flags.
8518fd37a7SXin LI* The new sdiff interactive command `ed' precedes each version with a header.
8618fd37a7SXin LI* On 64-bit hosts, files larger than 2 GB can be compared.
8718fd37a7SXin LI* Some internationalization support has been added, but multibyte locales
8818fd37a7SXin LI  are still not completely supported yet.
8918fd37a7SXin LI* Some diagnostics have been reworded slightly for consistency.
9018fd37a7SXin LI  Also, `diff -D FOO' now outputs `/* ! FOO */' instead of `/* not FOO */'.
9118fd37a7SXin LI* The `patch' part of the manual now describes `patch' version 2.5.4.
9218fd37a7SXin LI* Man pages are now distributed and installed.
9318fd37a7SXin LI* There is support for DJGPP; see the 'ms' subdirectory and the files
9418fd37a7SXin LI  m4/dos.m4 and */setmode.*.
9518fd37a7SXin LI
9618fd37a7SXin LI
97f5e00e24SAndrey A. ChernovUser-visible changes in version 2.7:
98f5e00e24SAndrey A. Chernov
9918fd37a7SXin 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.
16318fd37a7SXin LI* cmp and diff now conform to POSIX 1003.2-1992 (ISO/IEC 9945-2:1993)
16418fd37a7SXin 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.
22318fd37a7SXin LI
22418fd37a7SXin LI
22518fd37a7SXin LI
22618fd37a7SXin LICopyright (C) 1993, 1994, 1998, 2001, 2002, 2004 Free Software
22718fd37a7SXin LIFoundation, Inc.
22818fd37a7SXin LI
22918fd37a7SXin LIThis file is part of GNU Diffutils.
23018fd37a7SXin LI
23118fd37a7SXin LIThis program is free software; you can redistribute it and/or modify
23218fd37a7SXin LIit under the terms of the GNU General Public License as published by
23318fd37a7SXin LIthe Free Software Foundation; either version 2, or (at your option)
23418fd37a7SXin LIany later version.
23518fd37a7SXin LI
23618fd37a7SXin LIThis program is distributed in the hope that they will be useful,
23718fd37a7SXin LIbut WITHOUT ANY WARRANTY; without even the implied warranty of
23818fd37a7SXin LIMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23918fd37a7SXin LIGNU General Public License for more details.
24018fd37a7SXin LI
24118fd37a7SXin LIYou should have received a copy of the GNU General Public License
24218fd37a7SXin LIalong with this program; see the file COPYING.  If not, write to
24318fd37a7SXin LIthe Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24418fd37a7SXin LIBoston, MA 02111-1307, USA.
245