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