User-visible changes in version 2.7.1 alpha:

* Internationalization support is being added.
  Some diagnostics have been reworded slightly for consistency.
  Also, `diff -D FOO' now outputs `/* ! FOO */' instead of `/* not FOO */'.

  This area is still under construction.
  The current draft uses the Uniforum proposal message interface.
  The following work needs to be done:

  - Integration with glocale.
      We plan to add a Uniforum-style interface to glocale,
      at least enough to support `gettext', `<libintl.h>',
      and perhaps *.po files.
  - Internationalization support for library files like regex.c.
      The tricky part here is modularizing the message files.
  - Message localization.
      See the file `messages.po' for the messages now used by diffutils.
      These must be translated for each language locale.

* diffutils can now run on some PC configurations.
  See the `pc' subdirectory.  This is still under construction.
  We don't plan to support all PC configurations, just the easy ones.
  Also, we don't build or test this directory ourselves,
  and the PC world has several evolving development environments,
  so it's likely that this directory won't work for you without some hacking.
  If you run into a problem here, please send a bug report with a tested fix.


User-visible changes in version 2.7:

* New diff option: --binary (useful only on non-Posix hosts)
* diff -b and -w now ignore line incompleteness; -B no longer does this.
* cmp -c now uses locale to decide which output characters to quote.
* Help and version messages are reorganized.


User-visible changes in version 2.6:

* New cmp, diff, diff3, sdiff option: --help
* A new heuristic for diff greatly reduces the time needed to compare
  large input files that contain many differences.
* Partly as a result, GNU diff's output is not exactly the same as before.
  Usually it is a bit smaller, but sometimes it is a bit larger.


User-visible changes in version 2.5:

* New cmp option: -v --version


User-visible changes in version 2.4:

* New cmp option: --ignore-initial=BYTES
* New diff3 option: -T --initial-tab
* New diff option: --line-format=FORMAT
* New diff group format specifications:
  <PRINTF_SPEC>[eflmnEFLMN]
      A printf spec followed by one of the following letters
      causes the integer corresponding to that letter to be
      printed according to the printf specification.
      E.g. `%5df' prints the number of the first line in the
      group in the old file using the "%5d" format.
	e: line number just before the group in old file; equals f - 1
	f: first line number in group in the old file
	l: last line number in group in the old file
	m: line number just after the group in old file; equals l + 1
	n: number of lines in group in the old file; equals l - f + 1
	E, F, L, M, N: likewise, for lines in the new file
  %(A=B?T:E)
      If A equals B then T else E.  A and B are each either a decimal
      constant or a single letter interpreted as above.  T and E are
      arbitrary format strings.  This format spec is equivalent to T if
      A's value equals B's; otherwise it is equivalent to E.  For
      example, `%(N=0?no:%dN) line%(N=1?:s)' is equivalent to `no lines'
      if N (the number of lines in the group in the the new file) is 0,
      to `1 line' if N is 1, and to `%dN lines' otherwise.
  %c'C'
      where C is a single character, stands for the character C.  C may not
      be a backslash or an apostrophe.  E.g. %c':' stands for a colon.
  %c'\O'
      where O is a string of 1, 2, or 3 octal digits, stands for the
      character with octal code O.  E.g. %c'\0' stands for a null character.
* New diff line format specifications:
  <PRINTF_SPEC>n
      The line number, printed with <PRINTF_SPEC>.
      E.g. `%5dn' prints the line number with a "%5d" format.
  %c'C'
  %c'\O'
      The character C, or with octal code O, as above.
* Supported <PRINTF_SPEC>s have the same meaning as with printf, but must
  match the extended regular expression %-*[0-9]*(\.[0-9]*)?[doxX].
* The format spec %0 introduced in version 2.1 has been removed, since it
  is incompatible with printf specs like %02d.  To represent a null char,
  use %c'\0' instead.
* cmp and diff now conform to Posix.2 (ISO/IEC 9945-2:1993)
  if the underlying system conforms to Posix:
  - Some messages' wordings are changed in minor ways.
  - ``White space'' is now whatever C's `isspace' says it is.
  - When comparing directories, if `diff' finds a file that is not a regular
    file or a directory, it reports the file's type instead of diffing it.
    (As usual, it follows symbolic links first.)
  - When signaled, sdiff exits with the signal's status, not with status 2.
* Now portable to hosts where int, long, pointer, etc. are not all the same
  size.
* `cmp - -' now works like `diff - -'.


User-visible changes in version 2.3:

* New diff option: --horizon-lines=lines


User-visible changes in version 2.1:

* New diff options:
  --{old,new,unchanged}-line-format='format'
  --{old,new,unchanged,changed}-group-format='format'
  -U
* New diff3 option:
  -A --show-all
* diff3 -m now defaults to -A, not -E.
* diff3 now takes up to three -L or --label options, not just two.
  If just two options are given, they refer to the first two input files,
  not the first and third input files.
* sdiff and diff -y handle incomplete lines.


User-visible changes in version 2.0:

* Add sdiff and cmp programs.
* Add Texinfo documentation.
* Add configure script.
* Improve diff performance.
* New diff options:
-x --exclude
-X --exclude-from
-P --unidirectional-new-file
-W --width
-y --side-by-side
--left-column
--sdiff-merge-assist
--suppress-common-lines
* diff options renamed:
--label renamed from --file-label
--forward-ed renamed from --reversed-ed
--paginate renamed from --print
--entire-new-file renamed from --entire-new-files
--new-file renamed from --new-files
--all-text removed
* New diff3 options:
-v --version
* Add long-named equivalents for other diff3 options.
* diff options -F (--show-function-line) and -I (--ignore-matching-lines)
  can now be given more than once.
