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