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