Remove diffutils 2.8.1 from the vendor branch.
authorPeter Avalos <pavalos@dragonflybsd.org>
Sat, 2 Apr 2011 21:17:33 +0000 (11:17 -1000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sat, 2 Apr 2011 21:17:33 +0000 (11:17 -1000)
102 files changed:
contrib/diffutils-2.8.1/.DRAGONFLY-upgrade.swp [deleted file]
contrib/diffutils-2.8.1/ABOUT-NLS [deleted file]
contrib/diffutils-2.8.1/AUTHORS [deleted file]
contrib/diffutils-2.8.1/COPYING [deleted file]
contrib/diffutils-2.8.1/ChangeLog [deleted file]
contrib/diffutils-2.8.1/DRAGONFLY-upgrade [deleted file]
contrib/diffutils-2.8.1/INSTALLME [deleted file]
contrib/diffutils-2.8.1/Makefile.am [deleted file]
contrib/diffutils-2.8.1/NEWS [deleted file]
contrib/diffutils-2.8.1/README [deleted file]
contrib/diffutils-2.8.1/THANKS [deleted file]
contrib/diffutils-2.8.1/config.h [deleted file]
contrib/diffutils-2.8.1/doc/Makefile.am [deleted file]
contrib/diffutils-2.8.1/doc/diagmeet.note [deleted file]
contrib/diffutils-2.8.1/doc/diff.info [deleted file]
contrib/diffutils-2.8.1/doc/diff.texi [deleted file]
contrib/diffutils-2.8.1/doc/fdl.texi [deleted file]
contrib/diffutils-2.8.1/doc/stamp-vti [deleted file]
contrib/diffutils-2.8.1/doc/version.texi [deleted file]
contrib/diffutils-2.8.1/exgettext [deleted file]
contrib/diffutils-2.8.1/lib/Makefile.am [deleted file]
contrib/diffutils-2.8.1/lib/alloca.c [deleted file]
contrib/diffutils-2.8.1/lib/basename.c [deleted file]
contrib/diffutils-2.8.1/lib/c-stack.c [deleted file]
contrib/diffutils-2.8.1/lib/c-stack.h [deleted file]
contrib/diffutils-2.8.1/lib/cmpbuf.c [deleted file]
contrib/diffutils-2.8.1/lib/cmpbuf.h [deleted file]
contrib/diffutils-2.8.1/lib/dirname.h [deleted file]
contrib/diffutils-2.8.1/lib/error.c [deleted file]
contrib/diffutils-2.8.1/lib/error.h [deleted file]
contrib/diffutils-2.8.1/lib/exclude.c [deleted file]
contrib/diffutils-2.8.1/lib/exclude.h [deleted file]
contrib/diffutils-2.8.1/lib/exitfail.c [deleted file]
contrib/diffutils-2.8.1/lib/exitfail.h [deleted file]
contrib/diffutils-2.8.1/lib/fnmatch.c [deleted file]
contrib/diffutils-2.8.1/lib/fnmatch.hin [deleted file]
contrib/diffutils-2.8.1/lib/freesoft.c [deleted file]
contrib/diffutils-2.8.1/lib/freesoft.h [deleted file]
contrib/diffutils-2.8.1/lib/getopt.c [deleted file]
contrib/diffutils-2.8.1/lib/getopt.h [deleted file]
contrib/diffutils-2.8.1/lib/getopt1.c [deleted file]
contrib/diffutils-2.8.1/lib/gettext.h [deleted file]
contrib/diffutils-2.8.1/lib/hard-locale.c [deleted file]
contrib/diffutils-2.8.1/lib/hard-locale.h [deleted file]
contrib/diffutils-2.8.1/lib/imaxtostr.c [deleted file]
contrib/diffutils-2.8.1/lib/inttostr.c [deleted file]
contrib/diffutils-2.8.1/lib/inttostr.h [deleted file]
contrib/diffutils-2.8.1/lib/malloc.c [deleted file]
contrib/diffutils-2.8.1/lib/memchr.c [deleted file]
contrib/diffutils-2.8.1/lib/mkstemp.c [deleted file]
contrib/diffutils-2.8.1/lib/offtostr.c [deleted file]
contrib/diffutils-2.8.1/lib/posix/Makefile.am [deleted file]
contrib/diffutils-2.8.1/lib/posix/regex.h [deleted file]
contrib/diffutils-2.8.1/lib/posixver.c [deleted file]
contrib/diffutils-2.8.1/lib/posixver.h [deleted file]
contrib/diffutils-2.8.1/lib/prepargs.c [deleted file]
contrib/diffutils-2.8.1/lib/prepargs.h [deleted file]
contrib/diffutils-2.8.1/lib/quotesys.c [deleted file]
contrib/diffutils-2.8.1/lib/quotesys.h [deleted file]
contrib/diffutils-2.8.1/lib/realloc.c [deleted file]
contrib/diffutils-2.8.1/lib/regex.c [deleted file]
contrib/diffutils-2.8.1/lib/regex.hin [deleted file]
contrib/diffutils-2.8.1/lib/setmode.c [deleted file]
contrib/diffutils-2.8.1/lib/setmode.h [deleted file]
contrib/diffutils-2.8.1/lib/strcasecmp.c [deleted file]
contrib/diffutils-2.8.1/lib/strftime.c [deleted file]
contrib/diffutils-2.8.1/lib/strtoimax.c [deleted file]
contrib/diffutils-2.8.1/lib/strtol.c [deleted file]
contrib/diffutils-2.8.1/lib/strtoul.c [deleted file]
contrib/diffutils-2.8.1/lib/strtoull.c [deleted file]
contrib/diffutils-2.8.1/lib/strtoumax.c [deleted file]
contrib/diffutils-2.8.1/lib/tempname.c [deleted file]
contrib/diffutils-2.8.1/lib/umaxtostr.c [deleted file]
contrib/diffutils-2.8.1/lib/unlocked-io.h [deleted file]
contrib/diffutils-2.8.1/lib/waitpid.c [deleted file]
contrib/diffutils-2.8.1/lib/xalloc.h [deleted file]
contrib/diffutils-2.8.1/lib/xmalloc.c [deleted file]
contrib/diffutils-2.8.1/lib/xstrtol.c [deleted file]
contrib/diffutils-2.8.1/lib/xstrtol.h [deleted file]
contrib/diffutils-2.8.1/lib/xstrtoumax.c [deleted file]
contrib/diffutils-2.8.1/man/Makefile.am [deleted file]
contrib/diffutils-2.8.1/man/cmp.1 [deleted file]
contrib/diffutils-2.8.1/man/diff.1 [deleted file]
contrib/diffutils-2.8.1/man/diff3.1 [deleted file]
contrib/diffutils-2.8.1/man/sdiff.1 [deleted file]
contrib/diffutils-2.8.1/src/Makefile.am [deleted file]
contrib/diffutils-2.8.1/src/analyze.c [deleted file]
contrib/diffutils-2.8.1/src/cmp.c [deleted file]
contrib/diffutils-2.8.1/src/context.c [deleted file]
contrib/diffutils-2.8.1/src/diff.c [deleted file]
contrib/diffutils-2.8.1/src/diff.h [deleted file]
contrib/diffutils-2.8.1/src/diff3.c [deleted file]
contrib/diffutils-2.8.1/src/dir.c [deleted file]
contrib/diffutils-2.8.1/src/ed.c [deleted file]
contrib/diffutils-2.8.1/src/ifdef.c [deleted file]
contrib/diffutils-2.8.1/src/io.c [deleted file]
contrib/diffutils-2.8.1/src/normal.c [deleted file]
contrib/diffutils-2.8.1/src/sdiff.c [deleted file]
contrib/diffutils-2.8.1/src/side.c [deleted file]
contrib/diffutils-2.8.1/src/system.h [deleted file]
contrib/diffutils-2.8.1/src/util.c [deleted file]
contrib/diffutils-2.8.1/src/version.c [deleted file]

diff --git a/contrib/diffutils-2.8.1/.DRAGONFLY-upgrade.swp b/contrib/diffutils-2.8.1/.DRAGONFLY-upgrade.swp
deleted file mode 100644 (file)
index 9d5f8c1..0000000
Binary files a/contrib/diffutils-2.8.1/.DRAGONFLY-upgrade.swp and /dev/null differ
diff --git a/contrib/diffutils-2.8.1/ABOUT-NLS b/contrib/diffutils-2.8.1/ABOUT-NLS
deleted file mode 100644 (file)
index 022965c..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-Notes on the Free Translation Project
-*************************************
-
-   Free software is going international!  The Free Translation Project
-is a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
-
-   If you found this `ABOUT-NLS' file inside a distribution, you may
-assume that the distributed package does use GNU `gettext' internally,
-itself available at your nearest GNU archive site.  But you do _not_
-need to install GNU `gettext' prior to configuring, installing or using
-this package with messages translated.
-
-   Installers will find here some useful hints.  These notes also
-explain how users should proceed for getting the programs to use the
-available translations.  They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
-
-   When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used.  The information can be found in the
-`intl/VERSION' file, in internationalized packages.
-
-Quick configuration advice
-==========================
-
-   If you want to exploit the full power of internationalization, you
-should configure it using
-
-     ./configure --with-included-gettext
-
-to force usage of internationalizing routines provided within this
-package, despite the existence of internationalizing capabilities in the
-operating system where this package is being installed.  So far, only
-the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias, message inheritance, automatic
-charset conversion or plural form handling) as the implementation here.
-It is also not possible to offer this additional functionality on top
-of a `catgets' implementation.  Future versions of GNU `gettext' will
-very likely convey even more functionality.  So it might be a good idea
-to change to GNU `gettext' as soon as possible.
-
-   So you need _not_ provide this option if you are using GNU libc 2 or
-you have installed a recent copy of the GNU gettext package with the
-included `libintl'.
-
-INSTALL Matters
-===============
-
-   Some packages are "localizable" when properly installed; the
-programs they contain can be made to speak your own native language.
-Most such packages use GNU `gettext'.  Other packages have their own
-ways to internationalization, predating GNU `gettext'.
-
-   By default, this package will be installed to allow translation of
-messages.  It will automatically detect whether the system already
-provides the GNU `gettext' functions.  If not, the GNU `gettext' own
-library will be used.  This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required.  Installers may use
-special options at configuration time for changing the default
-behaviour.  The commands:
-
-     ./configure --with-included-gettext
-     ./configure --disable-nls
-
-will respectively bypass any pre-existing `gettext' to use the
-internationalizing routines provided within this package, or else,
-_totally_ disable translation of messages.
-
-   When you already have GNU `gettext' installed on your system and run
-configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl.a' file and
-will decide to use this.  This might be not what is desirable.  You
-should use the more recent version of the GNU `gettext' library.  I.e.
-if the file `intl/VERSION' shows that the library which comes with this
-package is more recent, you should use
-
-     ./configure --with-included-gettext
-
-to prevent auto-detection.
-
-   The configuration process will not test for the `catgets' function
-and therefore it will not be used.  The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
-
-   Internationalized packages have usually many `po/LL.po' files, where
-LL gives an ISO 639 two-letter code identifying the language.  Unless
-translations have been forbidden at `configure' time by using the
-`--disable-nls' switch, all available translations are installed
-together with the package.  However, the environment variable `LINGUAS'
-may be set, prior to configuration, to limit the installed set.
-`LINGUAS' should then contain a space separated list of two-letter
-codes, stating which languages are allowed.
-
-Using This Package
-==================
-
-   As a user, if your language has been installed for this package, you
-only have to set the `LANG' environment variable to the appropriate
-`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
-and `CC' is an ISO 3166 two-letter country code.  For example, let's
-suppose that you speak German and live in Germany.  At the shell
-prompt, merely execute `setenv LANG de_DE' (in `csh'),
-`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
-This can be done from your `.login' or `.profile' file, once and for
-all.
-
-   You might think that the country code specification is redundant.
-But in fact, some languages have dialects in different countries.  For
-example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
-country code serves to distinguish the dialects.
-
-   The locale naming convention of `LL_CC', with `LL' denoting the
-language and `CC' denoting the country, is the one use on systems based
-on GNU libc.  On other systems, some variations of this scheme are
-used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
-locales supported by your system for your country by running the command
-`locale -a | grep '^LL''.
-
-   Not all programs have translations for all languages.  By default, an
-English message is shown in place of a nonexistent translation.  If you
-understand other languages, you can set up a priority list of languages.
-This is done through a different environment variable, called
-`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
-for the purpose of message handling, but you still need to have `LANG'
-set to the primary language; this is required by other parts of the
-system libraries.  For example, some Swedish users who would rather
-read translations in German than English for when Swedish is not
-available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
-
-   In the `LANGUAGE' environment variable, but not in the `LANG'
-environment variable, `LL_CC' combinations can be abbreviated as `LL'
-to denote the language's main dialect.  For example, `de' is equivalent
-to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
-(Portuguese as spoken in Portugal) in this context.
-
-Translating Teams
-=================
-
-   For the Free Translation Project to be a success, we need interested
-people who like their own language and write it well, and who are also
-able to synergize with other translators speaking the same language.
-Each translation team has its own mailing list.  The up-to-date list of
-teams can be found at the Free Translation Project's homepage,
-`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
-area.
-
-   If you'd like to volunteer to _work_ at translating messages, you
-should become a member of the translating team for your own language.
-The subscribing address is _not_ the same as the list itself, it has
-`-request' appended.  For example, speakers of Swedish can send a
-message to `sv-request@li.org', having this message body:
-
-     subscribe
-
-   Keep in mind that team members are expected to participate
-_actively_ in translations, or at solving translational difficulties,
-rather than merely lurking around.  If your team does not exist yet and
-you want to start one, or if you are unsure about what to do or how to
-get started, please write to `translation@iro.umontreal.ca' to reach the
-coordinator for all translator teams.
-
-   The English team is special.  It works at improving and uniformizing
-the terminology in use.  Proven linguistic skill are praised more than
-programming skill, here.
-
-Available Packages
-==================
-
-   Languages are not equally supported in all packages.  The following
-matrix shows the current state of internationalization, as of March
-2002.  The matrix shows, in regard of each package, for which languages
-PO files have been submitted to translation coordination, with a
-translation percentage of at least 50%.
-
-     Ready PO files    bg ca cs da de el en eo es et fi fr
-                     +-------------------------------------+
-     a2ps            |          [] []             []    [] |
-     bash            |             []       [] []       [] |
-     bfd             |                         []       [] |
-     binutils        |                         []       [] |
-     bison           |             []             []    [] |
-     clisp           |             []    []    []       [] |
-     cpio            |          [] []          []       [] |
-     diffutils       |       [] [] []       [] []       [] |
-     enscript        |             []                   [] |
-     error           |                         []       [] |
-     fetchmail       |       () [] []          []       () |
-     fileutils       |          [] []          [] []    [] |
-     findutils       |          [] []          [] []    [] |
-     flex            |    []    []             []       [] |
-     gas             |                         []       [] |
-     gawk            |                         []       [] |
-     gcal            |    []                            [] |
-     gcc             |                         []       [] |
-     gettext         |    []    [] []          []       [] |
-     gnupg           |             [] []    [] [] []    [] |
-     gprof           |                         []       [] |
-     grep            | [] []       []          [] []    [] |
-     hello           |          [] [] []    [] [] [] [] [] |
-     id-utils        |          [] []                   [] |
-     indent          |    []       []       []    []    [] |
-     jpilot          |       () [] []                   [] |
-     jwhois          |                         []       [] |
-     kbd             |                         []       [] |
-     ld              |                         []       [] |
-     libc            |    [] [] [] [] []       []       [] |
-     lilypond        |          []                      [] |
-     lynx            |       [] [] []             []       |
-     m4              |       [] [] [] []                [] |
-     make            |          [] []          []       [] |
-     mysecretdiary   |             []                   [] |
-     nano            |    [] () [] []          []       [] |
-     nano_1_0        |    [] () [] []          []       [] |
-     opcodes         |          []             []       [] |
-     parted          |    []    [] []                   [] |
-     ptx             |          [] []          [] []    [] |
-     python          |                                     |
-     recode          |          [] [] []    [] []       [] |
-     sed             |       [] [] [] []    [] [] []    [] |
-     sh-utils        |    [] [] [] [] []       [] []    [] |
-     sharutils       |       [] [] [] []       []       [] |
-     sketch          |             ()          []       () |
-     soundtracker    |             []          []       [] |
-     sp              |                                     |
-     tar             |       [] [] []          [] []    [] |
-     texinfo         |       [] [] []       []          [] |
-     textutils       |    []    [] []          []       [] |
-     util-linux      |       [] []             []       [] |
-     vorbis-tools    |                                     |
-     wdiff           |          [] []          [] []    [] |
-     wget            |    [] [] [] [] []       [] []    [] |
-                     +-------------------------------------+
-                       bg ca cs da de el en eo es et fi fr
-                        1 12 11 31 36  9  1  8 39 15  1 50
-     
-                       gl he hr hu id it ja ko lv nb nl nn
-                     +-------------------------------------+
-     a2ps            |                ()    ()       []    |
-     bash            |                                     |
-     bfd             |                   []                |
-     binutils        |                   []                |
-     bison           |                   []          []    |
-     clisp           |                               []    |
-     cpio            | []                   []       []    |
-     diffutils       | [] []             []                |
-     enscript        |                               []    |
-     error           |          []                         |
-     fetchmail       |                                     |
-     fileutils       |          []    [] []                |
-     findutils       | []          [] [] [] []       []    |
-     flex            |                      []             |
-     gas             |                                     |
-     gawk            |    []                               |
-     gcal            |                                     |
-     gcc             |                                     |
-     gettext         |                      []             |
-     gnupg           | []             [] []                |
-     gprof           |                                     |
-     grep            |                []                   |
-     hello           | [] []    []    [] [] [] [] [] [] [] |
-     id-utils        |                               []    |
-     indent          | []                []          []    |
-     jpilot          |                   ()          ()    |
-     jwhois          |                                     |
-     kbd             |                                     |
-     ld              |                                     |
-     libc            | []                [] []    []       |
-     lilypond        |                   []          []    |
-     lynx            |                   []          []    |
-     m4              | []          []    []          []    |
-     make            | []                [] []       []    |
-     mysecretdiary   |                                     |
-     nano            | []          [] [] ()       [] () [] |
-     nano_1_0        | []          [] [] ()       [] () [] |
-     opcodes         |                               []    |
-     parted          | []                []             [] |
-     ptx             | []          []             [] []    |
-     python          |                                     |
-     recode          | [] []          []                   |
-     sed             | [] []       [] [] [] []       []    |
-     sh-utils        | []             [] []       [] []    |
-     sharutils       | []                []          []    |
-     sketch          |                ()                   |
-     soundtracker    | []                                  |
-     sp              |                                     |
-     tar             |                [] []       []       |
-     texinfo         |    []             []                |
-     textutils       |                      []    []       |
-     util-linux      |                () []                |
-     vorbis-tools    |                                     |
-     wdiff           |                                     |
-     wget            | [] []    []       []          []    |
-                     +-------------------------------------+
-                       gl he hr hu id it ja ko lv nb nl nn
-                       19  7  0  4  6 11 22  9  1  8 19  4
-     
-                       no pl pt pt_BR ru sk sl sv tr uk zh_TW
-                     +----------------------------------------+
-     a2ps            | () () ()       []    [] [] ()          |  8
-     bash            |                                        |  4
-     bfd             |                         [] []          |  5
-     binutils        |                            []          |  4
-     bison           |                []       [] []          |  8
-     clisp           |                                        |  5
-     cpio            |    []     []   []       []             | 11
-     diffutils       |    []          []       [] []     []   | 14
-     enscript        |           []   []       []             |  6
-     error           |                   []       []     []   |  6
-     fetchmail       |    ()     ()               []          |  4
-     fileutils       |                []    [] [] []          | 12
-     findutils       |    []     []   [] [] [] [] []          | 18
-     flex            |                []       [] []          |  8
-     gas             |                            []          |  3
-     gawk            |                         [] []          |  5
-     gcal            |                         [] []          |  4
-     gcc             |                            []          |  3
-     gettext         |                   [] [] [] []          | 10
-     gnupg           |    []                   [] []          | 12
-     gprof           |                         [] []          |  4
-     grep            |                []    []    []          | 10
-     hello           | [] []          [] []    [] [] []       | 25
-     id-utils        |                []       []             |  6
-     indent          |                [] []    [] []          | 12
-     jpilot          | ()                      ()             |  3
-     jwhois          |                ()       () []          |  3
-     kbd             |                         [] []          |  4
-     ld              |                         [] []          |  4
-     libc            | [] []     []      []    [] []          | 17
-     lilypond        |                         []             |  5
-     lynx            |           []   []       []             |  9
-     m4              |    []          []       []             | 12
-     make            |    []     []   []          []          | 12
-     mysecretdiary   |                         [] []          |  4
-     nano            | () []          []       []    []       | 14
-     nano_1_0        | ()             []       []    []       | 13
-     opcodes         |                         [] []          |  6
-     parted          |       []  []            []             | 10
-     ptx             | [] [] []       []       [] []          | 15
-     python          |                                        |  0
-     recode          |    []          []    [] []             | 13
-     sed             |           []   [] [] [] [] []          | 21
-     sh-utils        | [] []     []   [] [] [] [] []     []   | 22
-     sharutils       |                []       []        []   | 12
-     sketch          |           []   ()                      |  3
-     soundtracker    |                         []             |  5
-     sp              |                                        |  0
-     tar             | [] []     []      [] [] [] []          | 16
-     texinfo         |                []       []        []   | 10
-     textutils       |                      [] [] []     []   | 11
-     util-linux      |           []            [] []          |  8
-     vorbis-tools    |                         []             |  1
-     wdiff           |                [] []    [] []          |  9
-     wget            |                [] [] [] [] [] []  []   | 20
-                     +----------------------------------------+
-       35 teams        no pl pt pt_BR ru sk sl sv tr uk zh_TW
-       55 domains       5 13  2  12   25 11 11 41 34  4   7    489
-
-   Some counters in the preceding matrix are higher than the number of
-visible blocks let us expect.  This is because a few extra PO files are
-used for implementing regional variants of languages, or language
-dialects.
-
-   For a PO file in the matrix above to be effective, the package to
-which it applies should also have been internationalized and
-distributed as such by its maintainer.  There might be an observable
-lag between the mere existence a PO file and its wide availability in a
-distribution.
-
-   If March 2002 seems to be old, you may fetch a more recent copy of
-this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
-matrix with full percentage details can be found at
-`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
-
-Using `gettext' in new packages
-===============================
-
-   If you are writing a freely available program and want to
-internationalize it you are welcome to use GNU `gettext' in your
-package.  Of course you have to respect the GNU Library General Public
-License which covers the use of the GNU `gettext' library.  This means
-in particular that even non-free programs can use `libintl' as a shared
-library, whereas only free software can use `libintl' as a static
-library or use modified versions of `libintl'.
-
-   Once the sources are changed appropriately and the setup can handle
-to use of `gettext' the only thing missing are the translations.  The
-Free Translation Project is also available for packages which are not
-developed inside the GNU project.  Therefore the information given above
-applies also for every other Free Software Project.  Contact
-`translation@iro.umontreal.ca' to make the `.pot' files available to
-the translation teams.
-
diff --git a/contrib/diffutils-2.8.1/AUTHORS b/contrib/diffutils-2.8.1/AUTHORS
deleted file mode 100644 (file)
index f5f0e90..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-Authors of GNU diffutils.
-
-       Copyright 2001 Free Software Foundation, Inc.
-
-       This file is part of GNU diffutils.
-
-       GNU diffutils is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 2, or (at your option)
-       any later version.
-
-       GNU diffutils is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with GNU diffutils; see the file COPYING.  If not, write to
-       the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-       Boston, MA 02111-1307, USA.
-
-The following contributions warranted legal paper exchanges with the
-Free Software Foundation.  Also see files ChangeLog and THANKS.
-
-DIFFUTILS      Leonard H. Tower Jr.    US 1949 1987-03-09
-Assigns diff (diff.c, initial version).
-
-DIFFUTILS      Torbjorn Granlund       Sweden 1961     1988-01-11
-Assigns cmp.
-tege@matematik.su.se
-
-DIFFUTILS      Mike Haertel    US 1967 1988-09-16
-Assigns changes to diff.
-
-DIFFUTILS      David S. Hayes  US ?    1988-01-12
-Assigns changes to diff.
-
-DIFFUTILS      Randall Smith   US 1964 1988-09-21
-Assigns diff3.
-
-DIFFUTILS      Richard Stallman        US 1953 1988-01-15
-Assigns changes to GNU Diff.
-
-DIFFUTILS      F. Thomas May   US 1965 1989-08-22
-Assigns changes to diff (for -D).
-
-DIFFUTILS      Optimal Solutions, Inc. 1989-08-14
-Disclaims changes by Thomas May to diff.
-
-DIFFUTILS      Wayne Davison   1990-09-10
-Disclaims changes to diff.
-
-DIFFUTILS      Digital Research Inc.   1990-09-13
-Disclaims changes by Wayne Davison to diff.
-
-DIFFUTILS      Paul Eggert     1990-03-16
-Disclaims changes to diff.
-eggert@twinsun.com
-
-DIFFUTILS      Paul Eggert     1990-08-14
-Disclaims changes to GNU Diff.
-eggert@twinsun.com
-
-DIFFUTILS      Twin Sun Inc.   1990-03-16
-Disclaims changes to GNU Diff by Paul Eggert.
-
-DIFFUTILS      Twin Sun Inc.   1990-08-14
-Disclaims changes to GNU Diff by Paul Eggert.
-
-DIFFUTILS      Chip Rosenthal  US 1959 1990-03-06
-Assigns changes to diff.
-chip@chinacat.Unicom.COM
-
-DIFFUTILS      Unicom Systems Development      1990-03-06
-Disclaims changes by Chip Rosenthal to diff.
-
-GCC DIFFUTILS  Paul Eggert and Twin Sun Inc.   1992-03-11
-Disclaims changes by Paul Eggert to gcc and diff.
-eggert@twinsun.com
-
-DIFF   Wayne Davison   1993-06-20
-Disclaims diffcvt.c.
-
-DIFFUTILS      Francois Pinard Canada 1949     1993-01-15
-Assigns wdiff and future changes submitted to the FSF.
-pinard@iro.umontreal.ca
-
-DIFFUTILS      Patrick D'Cruze Australia 1971  1994-11-10
-Assigns changes (makefile.in, analyze.c, cmp.c, error.c, diff.c,
-diff3.c, getopt.c, getopt1.c, regex.c, sdiff.c, util.c, xmalloc.c;
-new file: language.++)
-
-DIFFUTILS      Paul R. Eggert  US 1954 1997-04-07
-Assigns past and future changes.
-eggert@twinsun.com
-
-DIFFUTILS      Paul R. Eggert  US 1954 1997-04-07
-Assigns past and future changes to manual.
-eggert@twinsun.com
-
-ANY DIFFUTILS GNATS    Cyclic Software 1997-11-11
-Assigns past and future works (work for hire by Tim Pierce (diffutils) and
-Abe Feldman (GNATS)).
-kingdon@cyclic.com
-
-WEBPAGES        Gregory B. Harvey       Canada 1976     1998-02-14
-Assigns web pages describing GNU Diffutils and future changes.
-
-DIFFUTILS      Olga Nikulin    Russia 1965     2001-01-11
-Assigns changes to diff. (diffutils-2.7.2/analyze.c, context.c, diff.[ch],
-ed.c, ifdef.c, io.c, normal.c, side.c, util.c)
-onikulin@yahoo.com
diff --git a/contrib/diffutils-2.8.1/COPYING b/contrib/diffutils-2.8.1/COPYING
deleted file mode 100644 (file)
index d60c31a..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-\f
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/contrib/diffutils-2.8.1/ChangeLog b/contrib/diffutils-2.8.1/ChangeLog
deleted file mode 100644 (file)
index 1e8723d..0000000
+++ /dev/null
@@ -1,3409 +0,0 @@
-2002-04-05  Paul Eggert  <eggert@sic.twinsun.com>
-
-       * NEWS, configure.ac (AC_INIT): Version 2.8.1.
-
-       * configure.ac (AC_HEADER_STDBOOL): Add.
-       (AC_CHECK_HEADERS): Remove stdbool.h.
-       * m4/stdbool.m4: New file.
-       * m4/prereq.m4 (jm_PREREQ_EXCLUDE):
-       Use AC_HEADER_STDBOOL rather than AC_CHECK_HEADERS(stdbool.h).
-       (jm_PREREQ_HASH): Likewise.
-
-       * src/system.h (SSIZE_MAX): Define if limits.h doesn't.
-
-       * src/analyze.c (diff_2_files): Assign PTRDIFF_MAX - 1 to a
-       size_t variable, just in case there's a problem with ptrdiff_t
-       versus size_t.
-
-       * lib/cmpbuf.c (errno): Remove decl; K&R C is no longer supported.
-       Include limits.h.
-       (SIZE_MAX, SSIZE_MAX): Define if standard headers don't.
-       (MIN): New macro.
-       (block_read): Do not attempt to read more than SSIZE_MAX bytes, as the
-       resulting behavior is implementation-defined.  Work around bug in
-       Tru64 5.1, which can't read more than INT_MAX bytes at a time.
-       * src/cmp.c (cmp): Use block_read instead of read, to work
-       around Tru64 5.1 bug.
-       * src/diff3.c (read_diff): Likewise.
-       * src/diff3.c: Include cmpbuf.h.
-
-       * THANKS: Add Ulrich Drepper.
-
-       * INSTALLME: Mention GNU texinfo.
-
-       * doc/diff.texi:
-       Use new @copying directive.
-       Put @contents first, not last, since Texinfo now suggests this.
-       Fix bug in -w documentation noted by Karl Berry.
-       Mention links for speedup.
-       New node "Speedups" for future speedups.
-       Just say "Index", not "Concept Index".
-
-2002-03-26  Paul Eggert  <eggert@twinsun.com>
-
-       * src/Makefile.am:
-       (INCLUDES): Remove this obsolete macro, replacing it with:
-       (AM_CPPFLAGS): New macro.
-
-2002-03-26  Albert Chin-A-Young  <china@thewrittenword.com>
-
-       * src/Makefile.am (datadir): Remove, as it conflicts with --datadir.
-
-2002-03-26  Paul Eggert  <eggert@twinsun.com>
-
-       * doc/diff.texi (dircategory GNU packages): Fix typo: a "* " was
-       missing before the menu entry.  Bug diagnosed by Adam Heath.
-       Also, put this dircategory after the Individual utilities dircategory,
-       to work around a compatibility problem with Debian install-info.
-       
-2002-03-24  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * src/io.c (sip): Do not mishandle buffered count when reverting
-       to text mode.
-
-2002-03-23  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AC_INIT): Version 2.8.
-       * configure.ac (AC_PREREQ): 2.53.
-       * INSTALLME: Upgrade to gettext 0.11.1 and help2man 1.27.
-
-       * doc/diff.texi: Upgrade the description of `patch' to GNU patch
-       2.5.4, and revamp the documentation accordingly.
-
-       * src/diff.c (main): Fix typo that prevented diff -y from working.
-       Bug reported by Mitsuru Chinen.
-
-2002-03-15  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/c-stack.c (c_stack_die) [!HAVE_SIGINFO_T]: Don't use info.
-       Bug reported by Eli Zaretskii.
-
-2002-03-15  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * ms/config.sed: Tweak editing of install-info-am target.
-
-2002-03-12  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AC_INIT): Version 2.7.10.
-
-       * NEWS: cmp -l -s and cmp -s -l are not allowed.
-       Deprecate diff -h, -H, -L, -P, --inhibit-hunk-merge.
-
-       * configure.ac (jm_PREREQ_HARD_LOCALE): Add.
-       (AM_INIT_AUTOMAKE): Do not distribute shar file.
-
-       * doc/diff.texi (Overview): byte != character.
-       (Detailed Context, Detailed Unified, Alternate Names, diff Options):
-       Do not document diff -L.
-       (Comparing Directories, Making Patches, diff Options):
-       Do not document diff -P.
-       (diff Performance, sdiff Option Summary, diff Options, sdiff Options):
-       Do not document diff -H.
-       (diff Performance, diff Options): Do not document --horizon-lines.
-       (cmp Options): Prefer -b to -c.
-       (cmp Options, diff Options, diff3 Options, patch Options,
-       sdiff Options): Put short options next to the similar long options.
-       Document --help, and use the same wording for --verbose.
-       (diff3 Options): Fix typo in description of -E, which used wrongly used
-       "-e" instead of "-E".
-
-       * lib/hard-locale.c (alloca): Remove.
-       Include stdlib.h if available, for malloc.
-       (hard_locale): Use malloc, not alloca, so that we need not worry about
-       alloca issues.  Test for storage allocation failure.
-
-       * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HARD_LOCALE.
-       (jm_PREREQ_HARD_LOCALE): New macro.
-
-       * src/cmp.c (specify_comparison_type): New function.
-       (check_stdout): "indices and codes" -> "byte numbers and values"
-       (main): Detect clashing options.
-       (cmp): Use "byte" rather than "char" if a translation for "byte"
-       is available, even when in the POSIX locale.
-
-       * src/diff.c (option_help_msgid): Do not document -L, -P,
-       --horizon-lines, --inhibit-hunk-merge, -H.
-       * src/diff.h: -L -> --label
-
-2002-03-11  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AC_INIT): Version 2.7.9.
-
-       * INSTALLME: Update to autoconf 2.53, automake 1.6, help2man
-       1.25 with patch.
-
-       * configure.ac (AC_INIT):
-       Change package name from diff to diffutils.
-       (AM_INIT_AUTOMAKE): Use new form, with option gnits,
-       rather than old from that duplicated AC_INIT.
-       (AM_MISSING_PROG): Add help2man.
-       (REGEX_MALLOC): Define.
-       (AC_CONFIG_FILES): Add man/Makefile.
-
-       * Makefile.am (AUTOMAKE_OPTIONS): Remove.
-       * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
-       * lib/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
-       * ms/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
-       * src/Makefile.am (AUTOMAKE_OPTIONS): Likewise.
-
-       * lib/c-stack.c: Include <errno.h>
-       (ENOTSUP): Define if errno.h doesn't.
-       (SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ,
-       _SC_PAGESIZE, ALTERNATE_STACK_SIZE, stack_t, sigaltstack):
-       Remove; we now assume them all when
-       HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need
-       substitutes.
-       (<ucontext.h>): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC.
-       (alternate_signal_stack): Now of size SIGSTKSZ.
-       (segv_handler): Simplify, under the assumption that
-       HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero.
-       (c_stack_action): Likewise.
-       (exit_failure) [DEBUG]: Initialize to 0, not 1.
-       (recurse, main) [DEBUG]: Remove main args.
-
-       * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change
-       wording of message.  Do not check for stdbool.h or ucontext.h,
-       or for ucontext_t or sigaction or sigaltstack.
-
-       * po/LINGUAS: Add zh_TW.
-       
-       * Makefile.am (SUBDIRS): Add man.
-       * man/Makefile.am: New file.
-       * src/cmp.c (usage): Reword for help2man.
-       * src/diff.c (option_help_msgid): Likewise.
-       * src/diff3.c (option_help_msgid, usage): Likewise.
-       * src/sdiff3.c (option_help_msgid, usage): Likewise.
-       Reword for help2man.
-
-       * THANKS: Add email address for Tower.
-
-       * config/config.guess, config/config.sub, config/depcomp,
-       config/install-sh, config/mdate-sh, config/missing,
-       config/mkinstalldirs, config/texinfo.texi: Update
-       to recent version (maintained in other packages).
-
-2002-03-04  Bruno Haible <haible@ilog.fr>
-
-       * m4/gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if
-       no preinstalled GNU gettext was found.
-
-2002-03-02  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * ms/config.sed: Tweak editing of install-info-am and
-       uninstall-info-am targets, to include 8+3-butchered names of Info
-       files.
-
-2002-02-28  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.8.
-
-       * doc/diff.texi: Add vr index.
-       Update copyright to 2002.
-       (Standards conformance): New chapter.
-       (Binary): Differing binary files are trouble unless the user asked for
-       brief output.
-       (Detailed Context): Prefer ISO time stamp format in discussion.
-       (Detailed Unified, Pagination): Likewise.
-       (Less Context): Likewise.  Also use short option.
-       (Alternate Names): Separate option from arg.
-       (Making Patches): Mention -U 2.
-       (diff Options): Deprecate -LINES, as POSIX 1003.1-2001 does not
-       allow it.
-
-       * INSTALLME: Update advice for Solaris installation problems.
-       We no longer use a test version of gettext.
-       Autoconf test version updated from 2.52f to 2.52h.
-       POSIX 1003.1-2001 patch for Automake.
-       
-       * configure.ac (AC__GNU_SOURCE): Add this,
-       replacing AH_VERBATIM of _GNU_SOURCE.
-       (tempname): Use AC_LIBOBJS, not LIBOBJS=, as now required by autoconf.
-       (jm_PREREQ_C_STACK): Add.
-       (AC_CONFIG_FILES): Remove intl/Makefile.
-       (AM_GNU_GETTEXT): Add external arg, from gettext 0.11.
-
-       * lib/c-stack.c, lib/c-stack.h, lib/exitfail.c, lib/exitfail.h,
-       lib/posixver.c, lib/posixver.h, m4/c-stack.m4, m4/gnu-source.m4,
-       po/cs.po, po/ja.po: New files.
-
-       * intl/ChangeLog, intl/Makefile.in, intl/VERSION,
-       intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c,
-       intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c,
-       intl/dngettext.c, intl/explodename.c, intl/finddomain.c,
-       intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.h,
-       intl/intl-compat.c, intl/l10nflist.c, intl/libgnuintl.h,
-       intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c,
-       intl/locale.alias, intl/localealias.c, intl/localename.c,
-       intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c,
-       intl/plural-eval.c, intl/plural-exp.c, intl/plural-exp.h,
-       intl/plural.c, intl/plural.y, intl/ref-add.sin, intl/ref-del.sin,
-       intl/textdomain.c, m4/isc-posix.m4, m4/libtool.m4: Remove.
-
-       * ABOUT-NLS: Update to Gettext 0.11.
-
-       * Makefile.am (SUBDIRS): Remove intl.
-
-       * config/config.guess, config/config.rpath, config/config.sub,
-       config/texinfo.tex, config/depcomp, config/texinfo.tex,
-       lib/tempname.c: Update to latest version from other packages.
-
-       * lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure.
-       * lib/xmalloc.c: Include exitfail.h.
-       (xalloc_exit_failure): Remove; subsumed by exit_failure.
-       All uses changed.
-
-       * lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h.
-       (libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c.
-       (INCLUDES): Remove.
-
-       * lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX.
-       * lib/cmpbuf.c: Include errno.h.
-       (errno): Declare if !STDC_HEADERS.
-       Include signal.h.
-       (SA_RESTART): Define if not already defined.
-       Include <inttypes.h>.
-       (PTRDIFF_MAX): Define if not already defined.
-       (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise.
-       (block_read): Accommodate ancient AIX hosts that set errno to EINTR
-       after uncaught SIGCONT.
-       (buffer_lcm): Return a reasonable size if the multiple is too large.
-       New arg LCM_MAX.  All callers changed.
-
-       * lib/hard-locale.c: Include "hard-locale.h".
-       (hard_locale): Ignore ENABLE_NLS, since we want to operate on
-       locales other than LC_MESSAGES.
-
-       * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER.
-       (jm_PREREQ_POSIXVER): New macro.
-
-       * m4/setmode.m4 (AC_FUNC_SETMODE_DOS):
-       Check for fcntl.h and unistd.h unconditionally.
-       Suggested by Bruno Haible.
-       
-       * po/LINGUAS: Add cs, ja.
-       * po/POTFILES.in: Add lib/c-stack.c, src/dir.c.
-
-       * src/Makefile.am (datadir): @DATADIRNAME@ -> share.
-       (INCLUDES): Remove intl.
-       (LDADD): Change INTLLIBS to LIBINTL.
-       No longer need to link libdiffutils.a twice.
-
-       * src/analyze.c (diff_2_files):
-       Avoid arithmetic overflow in buffer size calculation.
-
-       * src/cmp.c: Include c-stack.h, exitfail.h.
-       (hard_locale_LC_MESSAGES): Depend on ENABLE_NLS.
-       (try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE.
-       (main): Check for stack overflow.
-       0 -> EXIT_SUCCESS.
-       1 -> EXIT_FAILURE.
-       (cmp): Likewise.
-       Accommodate ancient AIX hosts that set errno to
-       EINTR after uncaught SIGCONT.
-
-       * src/context.c (pr_context_hunk):
-       Do not dump core if an enormous context causes an
-       arithmetic overflow.
-       (pr_unidiff_hunk): Likewise.
-       (find_hunk): Likewise.
-
-       * src/diff.h: unsigned -> unsigned int.
-       * src/diff.c: Include c-stack.h, exitfail.h.
-       Do not include signal.h.
-       (specify_style, specify_value): Bring these routines back, as POSIX
-       requires that the order of options not matter.
-       (shortopts): New constant.
-       (group_format_option, line_format_option): New constants.
-       (main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE.
-       Ensure that order of options does not matter.
-       Check for stack overflow.
-       If contexts overflow, substitute LIN_MAX, as that's good enough.
-       If multiple contexts are specified, use their maximum.
-       -c is equivalent to -C 3 now, instead of having an implicit context;
-       likewise for -u and -U 3.
-       Use specify_style and specify_value.
-       (SIGCHLD): Do not define; now done in a header.
-       Use new style time stamp format for -u / -U.
-       Reject numeric-string options if operating in POSIX 1003.1-2001 mode.
-       Avoid overflow problems with tab width.
-       Simplify from-file and to-file code.
-       (usage): Do not mention obsolete options.
-       (filetype): Do not mention whether a file is executable.
-       Add typed memory objects.
-       (compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 ->
-       EXIT_TROUBLE.
-
-       * src/diff3.c: Include c-stack.h, exitfail.h.
-       (ALLOCATE): Remove.  All uses changed to xmalloc, or to xmalloc plus
-       an overflow check.
-       (myread): Remove.
-       (main): Check for stack overflow.
-       0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE.
-       (try_help): Likewise.
-       (process_diff): Check for integer overflow, to avoid core dumps.
-       2 -> EXIT_TROUBLE.
-       (read_diff): Exit with status 126 if the file is not executable,
-       for compatibility with POSIX 1003.1-2001.
-       Accommodate ancient AIX hosts that set errno to EINTR after uncaught
-       SIGCONT.
-       Check for integer overflow to avoid core dumps.
-       (fatal, perror_with_exit): 2 -> EXIT_TROUBLE.
-
-       * src/dir.c (dir_read):
-       Ignore st_size of directories: POSIX says it's garbage.
-       Check for integer overflow to avoid core dumps.
-       (diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE.
-
-       * src/ifdef.c: Include <xalloc.h>.
-       (format_group, print_ifdef_lines): Avoid core dumps with bad formats.
-       (do_printf_spec): Avoid alloca.
-
-       * src/io.c (sip):
-       Avoid integer overflow and core dumps if buffer alignments are
-       preposterously incompatible.
-       (slurp): Do not dump core if the file is growing as we read it.
-       If a regular file grows, keep reading until we catch up with its EOF.
-       (find_and_hash_each_line): Check for integer overflow to avoid cores.
-       (GUESS_LINES): Remove.
-       (guess_lines): New function.  Avoid integer overflow.
-       (find_identical_ends): Use it.
-       Avoid integer overflow and possible core dumps.
-
-       * src/sdiff.c: Include c-stack.h, exitfail.h.  Do not include signal.h.
-       0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE.
-       (ck_editor_status): New function.
-       (main): Check for stack overflow.
-       Adopt POSIX convention for subsidiary programs not found.
-       (diffarg): Check for integer overflow to avoid core dumps.
-       (trapsigs): Remove SA_INTERRUPT special case; now done by header.
-       (SIGCHLD): Likewise.
-       (edit): Adopt POSIX convention for subsidiary programs not found.
-
-       * src/side.c: unsigned -> unsigned int.
-
-       * src/system.h: Don't use alloca or include <alloca.h>.
-       unsigned -> unsigned int
-       (EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined.
-       Include signal.h.
-       (SA_RESTART): Define if not defined.
-       (SIGCHLD): Likewise.
-       
-       * src/util.c: 2 -> EXIT_TROUBLE.
-       Adopt POSIX convention for ENOEXEC and exit status 126.
-       unsigned -> unsigned int
-
-2002-01-24  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7.
-
-       * intl/plural.c: Regenerate with Bison 1.31.
-
-       * ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++.
-       * INSTALL: Update to Autoconf 2.52f.
-
-       * INSTALLME: New file.
-       * Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME.
-       (DISTCLEANFILES): Remove.
-       * NEWS: Reformat for imminent 2.8 release.
-       * README: Mention INSTALLME.
-       * README-alpha: Move most of contents to INSTALLME.
-       * THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii.
-
-       * config: New subdirectory, containing the following files from .:
-       config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
-       Move the following files here from doc: texinfo.tex, mdate-sh.
-       * config/config.guess, config/config.sub, config/texinfo.tex:
-       Update to latest version from FSF.
-       * config/config.rpath: New file, from Gettext 0.11-pre5++.
-
-       * configure.ac (AC_INIT): Use new 3-arg form.
-       (AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT.
-       (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
-       (AC_CONFIG_AUX_DIR): New macro invocation.
-
-       * lib/Makefile.am (noinst_HEADERS): Add gettext.h.
-       * lib/gettext.h: New file, from Gettext 0.11-pre5++.
-       * lib/prepargs.c: Include <string.h>.  Reported by Bruno Haible.
-
-       * m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4,
-       lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++.
-       * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
-       Gettext 0.11-pre5++.
-
-       * po/LINGUAS: New file.
-       * po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++.
-       * po/Makevars, po/Rules-quot, po/boldquot.sed: New files,
-       from Gettext 0.11-pre5++.
-
-       * src/cmp.c (copyright_string): Update to 2002.
-       * src/diff.c (copyright_string): Likewise.
-       * src/diff3.c (copyright_string): Likewise.
-       * src/sdiff.c (copyright_string): Likewise.
-
-       * src/cmp.c (bytes, parse_ignore_initial, cmp): Use UINTMAX_MAX
-       instead of (uintmax_t) -1, to avoid warnings on some compilers.
-       * src/io.c (file_block_read): Likewise, for SIZE_MAX.
-
-       * src/cmp.c (usage): Reformat messages to ease translation.
-       * src/diff3.c (usage): Likewise.
-       * src/sdiff.c (usage): Likewise.
-
-       * src/diff3.c (main): Remove unused variable.
-
-       * src/dir.c: Include <setjmp.h>
-       (struct dirdata): New member nnames.
-       (locale_specific_sorting, failed_strcoll): New vars.
-       (dir_read): Renamed from dir_sort.  Don't sort the dir.
-       Set new nnames member of struct dirdata.  All callers changed.
-       (compare_names): Don't check for errno after strcasecmp.
-       Use strcoll only if locale_specific_sorting is nonzero.
-       If strcoll fails, longjmp out rather than returning a value
-       that might result in an invalid comparison function that might
-       make qsort dump core.
-       (diff_dirs): Sort the directory ourselves.  Use setjmp to recover
-       from strcoll failure, falling back on native byte comparison.
-       Make local variables volatile if they need to preserve their value
-       after setjmp/longjmp.
-
-       * src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE):
-       New macros.
-       (main): Do not confuse signal numbers with their indices.
-       Bug reported by Bruno Haible.
-       (edit): Cat lin to long before printing with %ld, since lin might
-       be narrow than long.
-
-       * src/system.h (UINTMAX_MAX): New macro.
-       Include gettext.h, not libgettext.h.
-       (N_): Do not wrap arg in parentheses.  Fix from Bruno Haible.
-
-       * src/util.c (finish_output): Ensure that werrno is initialized.
-       (lines_differ): Have an explicit do-nothing case for
-       IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall.
-
-2001-12-29  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * src/sdiff.c (interact): After extracting rlen from the editor
-       command, test for a terminating null character, not for a newline.
-
-       * ms/config.bat: Allow longer source directory names without
-       overflowing the line length limits.  Create the cache in the
-       build directory, not in the source directory
-       * ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are
-       unavailable.
-
-2001-12-23  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6.
-
-       * configure.ac (ALL_LINGUAS): Add tr.
-
-       * src/util.c (begin_output):
-       Have child exit with status 127 rather than reporting
-       failure on its own.  Set errno to 0 before invoking popen.
-       (finish_output): Report errno on pclose failure.
-       Distinguish between subsidiary program not found, and failure.
-
-       * src/sdiff.c (not_found, execdiff): Remove.
-       (DIFF_PROGRAM_OPTION): New constant.
-       (longopts, option_help_msgid, main): Add --diff-program=PROGRAM.
-       (check_stdout): New function.
-       (main): Remove DIFF_PROGRAM.  Check stdout after printing version.
-       Use check_stdout after printing help.  Use execvp/perror_fatail rather
-       than execdiff.  Set errno to 0 before invoking popen.
-       Check for pclose failure properly.
-       (main, edit): If child exec fails, exit with 127 rather than trying to
-       print diagnostic.
-       Distinguish between subsidiary program failing and not being found.
-       (edit): Handle signals the same way, regardless of whether we're using
-       system or fork+exec.  Check for system returning -1.
-
-       * src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants.
-       (longopts, main): Use them.
-       (longopts, main, option_help_msgid): New option --diff-option=PROGRAM.
-       (main): Remove DIFF_PROGRAM support.
-       Check stdout after printing version.
-       (check_stdout): Report errno info if fclose fails.
-       (read_diff): Have child exit with status 127 when program is not found,
-       rather than trying to have the child report failure.  Check for
-       pclose returning -1.
-
-       * src/diff.c (DEFAULT_WIDTH): Remove.
-       (main): Use 130 instead of DEFAULT_WIDTH, since it's not really
-       builder-settable.  Do not prepend DIFF_OPTIONS.
-       (check-stdout): If fclose (stdout) fails, print errno info.
-       (option_help_msgid): Default context is 3, not 2.
-       (usage): Work even if ptrdiff_t is wider than int.
-
-       * doc/diff.texi (diff Options): Remove DIFF_OPTIONS.
-       (Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM.
-       (diff3 Options, sdiff Options): Add --diff-program.
-
-       * src/cmp.c (valid_suffixes):
-       Add '0', to support suffixes like "MB" and "MiB".
-       (check_stdout): Don't assume that the translations of "write failed"
-       and of "standard output" lack '%'.
-       (main): Check stdout after printing version.
-
-       * lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include <fcntl.h>.
-       [!HAVE_SETMODE_DOS]: Do not include <unistd.h>.
-       (set_binary_mode): Return mode (not 1) if fd is a tty.
-       Do not assume that O_TEXT is zero.
-
-       * doc/diff.texi (cmp Options):
-       In byte counts, a plain suffix (without any integer)
-       is assumed to modify the integer 1.  Index terms like "kibibyte".
-       Document plain "k".
-
-       (Reporting Bugs): Mention bug-report archive and test version
-       location.  Ask for "diff --version" in bug reports.
-
-2001-12-13  Paul Eggert  <eggert@twinsun.com>
-
-       * src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without
-       also changing option_help_msgid.  All uses replaced with 130.
-
-       * lib/setmode.c: Include fcntl.h and unistd.h only if
-       HAVE_SETMODE_DOS.
-       (setmode): Assume a file is binary unless the mode is O_TEXT.
-       * ms/README: Fix minor typos.
-
-2001-12-13  Eli Zaretskii  <eliz@is.elta.co.il>
-
-       * ms/README: New file.
-
-       * lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume
-       O_TEXT has a zero value.  If FD is a terminal device, do nothing
-       and return MODE, thus pretending that it was already in the
-       requested MODE.
-       [HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY).
-
-       * ms/config.sed: Remove the split prevention of config.status.
-       Fix Sed commands for converting absolute file names into
-       top_srcdir-relative ones.
-
-       * ms/config.bat: Fix typos.
-
-2001-12-12  Neal H Walfield  <neal@cs.uml.edu>
-
-       * diff.c (option_help_msgid): Correct the default context width
-       from 2 to 3.
-
-2001-12-11  Paul Eggert  <eggert@twinsun.com>
-
-       * m4/Makefile.am.in: Remove jm-glibc-io.m4
-
-       * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.5.
-
-       * configure.ac (PR_PROGRAM): Use AC_DEFINE_UNQUOTED, so that
-       $PR_PROGRAM is expanded by sh.
-       (ptrdiff_t, ssize_t): Use AC_CHECK_TYPE with a default of int,
-       not AC_CHECK_TYPES.
-       (jm_AC_DOS, AC_FUNC_SETMODE_DOS): New macros.
-       (AC_CONFIG_FILES): Add ms/Makefile.
-
-       * doc/diff.texi: Add --no-ignore-file-name-case.
-       File name case sensitivity now affects file name exclusion.
-       Fix typos.
-
-       * src/util.c: Include dirname.h.
-       (dir_file_pathname): Use base_name rather than file_name_lastdirchar.
-
-       * src/system.h (S_IXUSR, S_IXGRP, S_IXOTH): New macros.
-       Include <libgettext.h> rather than rolling it ourselves.
-       (file_name_lastdirchar, HAVE_SETMODE, set_binary_mode): Remove.
-
-       * src/sdiff.c: Include <dirname.h>.
-       (expand_name): Use base_name rather than file_name_lastdirchar, for
-       portability to DOS.
-       (main): Initialize xalloc_exit_failure before possibly invoking
-       any memory allocator.
-
-       * src/io.c: Include setmode.h.
-
-       * src/diff3.c (main):
-       Initialize xalloc_exit_failure before possibly invoking any memory
-       allocator.
-
-       * src/diff.c: Include dirname.h, setmode.h.
-
-       (main): Later values and/or styles now silently override earlier.
-       (specify_value, specify_style): Likewise.  All callers changed.
-       Remove.
-       (binary, main, option_help_msgid, compare_files):
-       HAVE_SETMODE -> HAVE_SETMODE_DOS.
-       (NO_IGNORE_FILE_NAME_CASE_OPTION): New constant.
-       (longopts, main, option_help_msgid): Support it.
-       (exclude_options): New function.
-       (main): Use it. Initialize xalloc_exit_failure before potentially
-       allocating memory.
-
-       (filetype): Distinguish executable files from others, as POSIX
-       suggests.
-
-       (compare_files): Use base_name instead of file_name_lastdirchar.
-
-       * src/cmp.c: Include <hard-locale.h>, <setmode.h>.
-       (hard_locale_LC_MESSAGES): New macro.
-       (sprintc): Remove int width arg; it's now the caller's responsibility
-       to pad.  All callers changed.
-       (stat_buf): New static var; was formerly a local var in 'main'.
-       (valid_suffixes): Add 'K', for 'KiB'.
-       (option_help_msgid): Don't confuse bytes with characters.
-       (main): Set xalloc_exit_failure before invoking anything that might
-       allocate memory.  Fix bug: -n was incorrectly ignored when optimizing
-       the case of regular files with different lengths.
-       (cmp): Use an index column wide enough to store this comparison's
-       indexes.  In locales other than the POSIX locale, say "byte"
-       rather than "char".
-
-       * ms/config.bat: pc -> ms
-
-       * ms/Makefile.am, m4/setmode.m4, lib/setmode.c, lib/setmode.h:
-       New file.
-
-       * lib/Makefile.am (noinst_HEADERS): Add dirname.h, setmode.h.
-       (libdiffutils_a_SOURCES): Add basename.c, setmode.c.
-
-       * Makefile.am (SUBDIRS): Add ms.
-
-2001-12-10  Paul Eggert  <eggert@twinsun.com>
-
-       * m4/fnmatch.m4: Test for FNM_CASEFOLD.
-
-2001-12-03  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/posix/regex.h: Fix copyright notice.
-
-2001-12-03  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.4.
-
-       * diff.texi (direntry, Overview, Comparison, Binary, Invoking cmp):
-       Use "byte" rather than "character" when talking about cmp, since
-       it compares bytes, not character.
-       (Invoking cmp): New trailing operands FROM-SKIP and TO-SKIP.
-       -i or --ignore-initial now accepts FROM-SKIP:TO-SKIP.
-       New option -n or --bytes.
-       Count operands now may be in octal or hex, and may be followed by a
-       size multiplier.
-
-       * configure.ac (DEFAULT_DIFF_PROGRAM):
-       Define to "diff", not "$bindir/diff" (which didn't work anyway).
-       (AC_CHECK_MEMBERS): Add struct stat.st_blksize, struct stat.st_rdev.
-       (AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Remove; obsolescent.
-       (AC_FUNC_FORK): Use this, instead of obsolescent AC_FUNC_VFORK.
-       (AC_CONFIG_FILES, AC_CONFIG_COMMANDS): Add.
-       (AC_OUTPUT): Remove args; they were obsolescent.
-
-       * util.c (setup_output, begin_output, finish_output):
-       HAVE_FORK -> HAVE_WORKING_FORK || HAVE_WORKING_VFORK.
-       * sdiff.c (diffpid, cleanup, main, edit): Likewise.
-       * diff3.c (read_diff): Likewise.
-
-       * system.h (STAT_BLOCKSIZE):
-       Use HAVE_STRUCT_STAT_ST_BLKSIZE, not HAVE_ST_BLKSIZE.
-       (vfork): New macro.
-       (HAVE_FORK): Remove.
-       (set_binary_mode): New macro.
-
-       * sdiff.c (main): HAVE_VFORK -> HAVE_WORKING_VFORK.
-       (edit): Reopen the temporary file after the editor has run, in case
-       the editor operates by unlinking the old file and linking a new one.
-       (P_tmpdir): Rename from PVT_tmpdir; this fixes a typo.
-       All uses changed.
-
-       * io.c (sip, read_files):
-       Remove tests for HAVE_SETMODE; use set_binary_mode
-       instead of setmode.
-       (sip): Fix typo in backward lseek when reverting to text mode.
-
-       * config.site, config.sed, config.bat: New file.
-
-       * Makefile.am (EXTRA_DIST): Add xstrtol.c.
-       (noinst_HEADERS): Add xstrtol.h.
-       (libdiffutils_a_SOURCES): Add xstrtoumax.c.
-
-       * cmp.c: <xstrtol.h>: Include.
-       (ignore_initial): Now an array with 2 elements.  All uses changed.
-       (bytes): New var.
-       (HELP_OPTION): New constant.
-       (long_options, main): Use it.
-       (long_options, option_help_msgid, main, cmp):
-       Add support for -n or --bytes.
-       (parse_ignore_initial): New function.
-       (option_help_msgid, main): Add -i M:N.
-       (usage, main): Add two optional trailing operands, a la BSD.
-       (main): setmode -> set_binary_mode.
-       (cmp): Report byte number of what we've seen, not of the entire file.
-       This is to be consistent with the line number, which is always relative
-       with what we've seen.
-
-2001-12-02  Paul Eggert  <eggert@twinsun.com>
-
-       * diff.c (main, compare_files): setmode -> set_binary_mode.
-
-       * xstrtol.c (__xstrtol): Don't accept 'Ki'; require 'KiB'.
-
-       * xstrtol.c (__xstrtol): Add support for IEC 60027-2.
-
-2001-11-25  Paul Eggert  <eggert@twinsun.com>
-
-       * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.3.
-
-       * README-alpha: New file.
-
-       * src/Makefile.am (INCLUDES): Add -I../lib, for regex.h.
-
-       * configure.ac:
-       Don't set LIB_CLOCK_GETTIME to 'none required'; set it to
-       the empty string instead.
-
-       * lib/Makefile.am (EXTRA_DIST): Add strtoimax.c, strtol.c.
-
-       * Makefile.am (SUBDIRS): Put intl before lib, so that libintl.h exists.
-
-       * lib/Makefile.am (noinst_HEADERS): Add unlocked-io.h.
-
-       * configure.ac (__EXTENSIONS__): New define, for the unlocked macros.
-
-       * README: Add copyright notice.
-       Remove stuff that doesn't apply any more.
-
-       * doc/diff.texi: offsets -> indices for cmp
-
-       * src/cmp.c (option_help_msgid): offsets -> indices
-
-       * src/diff.c (option_help_msgid):
-       Don't mention --binary on POSIX hosts.
-
-       * src/sdiff.c (STRIP_TRAILING_CR_OPTION): New constant.
-       (longopts, option_help_msgid, main): Add -E, --ignore-tab-expansion,
-       --strip-trailing-cr.
-
-       * doc/diff.texi: Change direcategory from Utilities to GNU Packages.
-       Add individual utilities.
-       Switch to Free Documentation License.
-       @code -> @command
-       @samp -> @option
-       GNU -> @sc{gnu}
-       Expand tabs to spaces, except when in an example that actually
-       uses tabs.
-       Prefer @node with just one arg.
-       Document -E or --ignore-tab-expansion, --strip-trailing-cr,
-       --ignore-file-name-case.
-       Regular expressions are now grep style, not Emacs style.
-       cmp's -c or --print-chars option is now -b or --print-bytes.
-       Time stamps now depend on LC_TIME.
-       -p now implies ^[[:alpha:]$_].
-       Flags now include ' and 0.
-       cmp -i is an alias for --ignore-initial
-       Document --from-file, --to-file.
-       Document DIFF_OPTIONS.
-
-       * configure.ac (AC_CHECK_FUNCS): Add gettimeofday, clock_gettime.
-       (LIB_CLOCK_GETTIME): New subst.
-
-       * src/system.h: Assume C89 or better.
-       (_GNU_SOURCE): Remove; config.h now defines it.
-       (alloca): Declare like coreutils does it.
-       (verify, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, O_RDWR,
-       S_IRUSR, S_IWUSR): New macros.
-       (STAT_BLOCKSIZE): Parenthesize definiens.
-       <inttypes.h>: Include if HAVE_INTTYPES_H.
-       (CHAR_MAX, INT_MAX): Remove.
-       (PTRDIFF_MAX, SIZE_MAX): New macros.
-       (strtoumax): New decl.
-       Include stddef.h.
-       (bzero): Remove.
-       (bindtextdomain, textdomain, N_): New macros.
-       (ISPRINT, ISSPACE): Remove ifndef wrappers.
-       (ISUPPER, ISDIGIT): Remove.
-       (TOLOWER): New macro.
-       (MIN): Renamed from min; all callers changed.
-       (MAX): Likewise, from max.
-       (lin): New type.
-       (LIN_MAX): New macro.
-       (file_name_cmp): Renamed from filename_cmp.  All callers changed.
-       (file_name_lastdirchar): Renamed from file_name_lastdirchar.
-       All callers changed.
-       (could_be_mvfs_stat_bug, could_be_nfs_stat_bug,
-       dev_may_have_duplicate_ino): Remove.
-       (HAVE_SETMODE, NULL_DEVICE): New macros.
-       (same_file): Do not check attributes.
-       (same_file_attributes): New macro.
-
-       * src/util.c: Assume C89 or better.
-       int -> bool for booleans.
-       int -> lin for line numbers.
-       int -> size_t for sizes.
-       Use angle-brackets when including quotesys.h.
-       Include error.h, regex.h, xalloc.h.
-       (message5): sizeof -> offsetof
-       (begin_output): Invoke pr without -f.
-       (lines_differ): Renamed from line_cmp, and return bool not 3-way int.
-       All callers changed.
-       Add support for IGNORE_TAB_EXPANSION.
-       (change_letter): Now an array rather than a function.  All
-       callers changed.
-       (translate_range): Translate line numbers to long, not lin,
-       for convenience with printf.
-       (analyze_hunk): Return enum changes instead of a count of
-       inserts and deletes.  All callers changed.
-       (zalloc): New function.
-
-       * src/side.c: Assume C89 or better.
-       int -> bool for booleans.
-       int -> lin for line numbers.
-
-       * src/sdiff.c: Assume C89 or better.
-       int -> bool for booleans.
-       int -> lin for line numbers.
-       Use angle-brackets when including getopt.h, quotesys.h.
-       Include error.h, freesoft.h, stdio.h, xalloc.h.
-       (copyright_string): Use only most recent year.
-       (authorship_msgid, option_help_msgid): Wrap in N_().
-
-       (tmpname): Now volatile.
-       (tmpmade): Remove.
-       (tmp): New var.
-       (private_tempnam, exists, letters): Remove.
-       (temporary_file): New function.
-       (edit): Use it.
-       (interact): Use strtoumax, not atoi.
-
-       * src/normal.c: Assume C89 or better.
-       int -> lin for line numbers.
-
-       * src/io.c: Assume C89 or better.
-       int -> bool for booleans.
-       int -> lin for line numbers.
-       int -> size_t for sizes.
-       Use angle-brackets when including cmpbuf.h.
-       Include regex.h, xalloc.h.
-       (word): Remove; now done in system.h.
-       (hash_value): New type; use it instead of 'unsigned' for hash values.
-       (file_block_read): New function.
-       (sip, slurp): Use it.  Now static.
-       (sip): Ensure block size is a multiple of word size.  Clear eof flag.
-       (slurp): Use xalloc_die to report memory exhaustion.
-       (find_and_hash_each_line): Use TOLOWER instead of _tolower.
-       Add support for IGNORE_TAB_EXPANSION.
-       (prepare_text_end): Strip trailing CR if requested.
-       (find_identical_ends): Prepare the text only once,
-       if they're duplicates.
-       Let the compiler take advantage more of the fact that the buffers are
-       word-aligned.
-       (primes): Remove.
-       (prime_offset): New var.
-       (read_var): Use prime_offset instead of primes.
-       Use zalloc instead of xmalloc + bzero.
-
-       * src/ifdef.c: Assume C89 or better.
-       int -> lin for line numbers.
-       (format_group): Use strtoumax to parse line numbers.
-       (format_group, print_ifdef_lines): Use do_printf_spec to
-       handle printf specs.
-       (groups_letter_value): Don't use _tolower; it's locale-dependent.
-       (do_printf_spec): Renamed from scan_printf_spec; now does the printing.
-
-       * src/ed.c: Assume C89 or better.
-       int -> lin for line numbers (or 'long' when that's more convenient).
-       (print_ed_hunk): Fix bug when handling double-dot inserts.
-
-       * src/dir.c: Assume C89 or better.
-       int -> bool for booleans.
-       Include error.h, exclude.h, xalloc.h.
-
-       (dir_sort): Return 0 on error, 1 on success.  All callers changed.
-       compare_names -> compare_names_for_qsort.
-
-       (compare_names): Try strcasecmp if ignore_file_name_case.  Then try
-       strcoll.  Use file_name_cmp only as a last resort.  Warn about
-       strcasecmp or strcoll failure.
-       (compare_names_for_qsort): New function.
-
-       (diff_dirs): Use compare_names rather than filename_cmp.
-
-       * src/diff3.c: Assume C89 or better.
-       int -> bool for booleans.
-       int -> lin for line numbers.
-       Use angle-brackets when including getopt.h, quotesys.h.
-       Include error.h, freesoft.h, inttostr.h, xalloc.h.
-       (copyright_string): Use only most recent year.
-       (authorship_msgid, option_help_msgid): Wrap in N_().
-
-       Rename the following variables for consistency with user-visible
-       option spellings.  All uses changed.
-       (text): Renamed from always_text.
-       (initial_tab): Renamed from tab_align_flag.
-
-       (horizon_lines): Remove.  Remove all uses.
-
-       (main): Invoke bindtextdomain and textdomain after setlocale.
-       Rename "DIFF" to "DIFF_PROGRAM".
-
-       Try to compare file0 to file1, because this is where changes are
-       expected to come from.  Diffing between these pairs of files is more
-       likely to avoid phantom changes from file0 to file1.
-       However, use file2 as the common file if this is a 3-way diff,
-       for backward compatibility.  Suggested by Karl Tomlinson.
-
-       (create_diff3_block): Use xcalloc instead of malloc + bzero.
-
-       (INT_STRLEN_BOUND): Remove; now in system.h.
-
-       (read_diff): Always use --horizon-lines=100 rather than trying
-       to guess it.
-       Do not pass --inhibit-hunk-merge.
-       Minimum chunk size is 1, not 8KiB.
-       Use xalloc_die to report memory exhaustion.
-       (undotlines): Use long for start, not int.
-
-       * src/diff.h: Assume C89 or better.
-       int -> bool for booleans.
-       int -> lin for line numbers.
-       Don't include regex.h.
-       (enum changes): New enum.
-       (enum line_class): Remove; subsumed by enum changes.
-       (enum output_style): New constant OUTPUT_UNSPECIFIED.
-
-       (ignore_space_change_flag, ignore_all_space_flag): Remove.
-       (ignore_white_space): New decl, subsuming the above two.  All
-       uses changed.
-
-       Rename the following decls for consistency with user-visible
-       option spellings.  All uses changed.
-       (text): Renamed from always_text_flag.
-       (ignore_blank_lines): Renamed from ignore_blank_lines_flag.
-       (ignore_case): Renamed from ignore_case_flag.
-       (brief): Renamed from no_details_flag.
-       (initial_tab): Renamed from tab_align_flag.
-       (expand_tabs): Renamed from tab_expand_flag.
-       (starting_file): Renamed from dir_start_file.
-       (paginate): Renamed from paginate_flag.
-       (sdiff_merge_assist): Renamed from sdiff_help_sdiff.
-       (left_column): Renamed from sdiff_left_only.
-       (suppress_common_lines): Renamed from sdiff_skip_common_lines.
-       (speed_large_files): Renamed from heuristic.
-       (minimal): Renamed from no_discards.
-
-       (inhibit_hunk_merge): Remove.
-
-       (strip_trailing_cr, excluded, time_format): New decls.
-
-       (files_can_be_treated_as_binary): Renamed from ignore_some_changes.
-
-       (group_format, line_format): Now char const *[], not char *[].
-
-       (struct file_data): Buffer is now word*, not char*, as it's always
-       aligned and this can help the compiler.  buffered_chars -> buffered
-       (since it's a byte count, not a char count).  All uses changed.
-       New member `eof'.
-
-       (FILE_BUFFER): New macro.
-
-       (excluded_filename, error, free_software_msgid): Remove decls; now in
-       other .h files.
-
-       (sip, slurp): Remove decls.
-       (file_block_read): New decl.
-       (change_letter): Now an array, not a function.
-       (lines_differ): Renamed from line_cmp.
-       (analyze_hunk): Now returns enum changes rather than two change counts.
-
-       * src/Makefile.am (diff_LDADD): New symbol.
-
-       * src/diff.c: Assume C89 or better.
-       int -> bool for booleans.
-       long -> off_t for line numbers.
-       Use angle-brackets when including getopt.h, fnmatch.h, quotesys.h.
-       Include error.h, exclude.h, freesoft.h, hard-locale.h, prepargs.h,
-       regex.h, signal.h, xalloc.h.
-       (copyright_string): Use only most recent year.
-       (authorship_msgid, option_help_msgid): Wrap in N_().
-
-       Rename the following variables for consistency with user-visible
-       option spellings.  All uses changed.
-       (binary): Renamed from binary_flag.
-       (new_file): Renamed from entire_new_file_flag.
-       (unidirectional_new_file): Renamed from unidirectional_new_file_flag.
-       (report_identical_files): Renamed from print_file_same_flag.
-
-       (numeric_arg): Remove.
-
-       (exclude, exclude_alloc, exclude_count, excluded_filename, add_exclude,
-       add_exclude_file):
-       Remove; now done by exclude.h.
-
-       (BINARY_OPTION, FROM_FILE_OPTION, HELP_OPTION, HORIZON_LINES_OPTION,
-       IGNORE_FILE_NAME_CASE_OPTION, INHIBIT_HUNK_MERGE_OPTION,
-       LEFT_COLUMN_OPTION, LINE_FORMAT_OPTION, NORMAL_OPTION,
-       SDIFF_MERGE_ASSIST_OPTION, STRIP_TRAILING_CR_OPTION,
-       SUPPRESS_COMMON_LINES_OPTION, TO_FILE_OPTION,
-       UNCHANGED_LINE_FORMAT_OPTION, OLD_LINE_FORMAT_OPTION,
-       NEW_LINE_FORMAT_OPTION, UNCHANGED_GROUP_FORMAT_OPTION,
-       OLD_GROUP_FORMAT_OPTION, NEW_GROUP_FORMAT_OPTION,
-       CHANGED_GROUP_FORMAT_OPTION): New constants.
-       (longopts, main): Use them.
-
-       (longopts, main, option_help_msgid): Add -E, --from-file, --to-file.
-
-       (main): Invoke bindtextdomain and textdomain after setlocale.
-       Use grep syntax, not Emacs, for regular expressions.
-       Use exclude.h, not our own functions.
-       Use ISO 8601 time format in hard locales.
-       Prepend DIFF_OPTIONS.
-       Don't update ignore_some_changes.
-       Use strtoumax instead of numeric_arg.
-       Use specify_value when appropriate.
-       error -> try_help when appropriate.
-       -p now means ^[[:alpha:]$_], not ^[_a-zA-Z$].
-       Ignore --inhibit-hunk-merge.
-       Prefer changed group formats to unchanged ones.
-       Remove now-unnecessary casts.
-       Set files_can_be_treated_as_binary.
-
-       (specify_value): Renamed from specify_format.  All uses changed.
-
-       (specify_style): Default is now unspecified, not normal.  All
-       uses changed.
-
-       (set_mtime_to_now): New function.
-       (compare_files): Use it.  Use memset, not bzero.
-       Set stdin mtime to current time even when stdin is not a regular file.
-       Check for same file attributes, as well as for same file.
-       Use files_can_be_treated_as_binary.
-       "write failed" -> "standard output on output failure.
-
-       * src/context.c: Assume C89 or better.
-       int -> lin for line numbers.
-       Include inttostr.h, regex.h.
-       (TIMESPEC_NS): New macro.
-       (nstrftime): New decl.
-       (print_context_label): Use nstrftime and time_format to format times.
-       Print numeric time stamp value if localtime fails.
-       (print_context_function): New function.
-       (pr_context_hunk, pr_unidiff_hunk): Use it.
-       (find_function): Use size_t for sizes, not int.
-
-       * src/cmp.c: Assume C89 or better.
-       int -> bool for booleans.
-       long -> off_t for line numbers.
-       Use angle-brackets when including cmpbuf.h, getopt.h.
-       Include error.h, freesoft.h, inttostr.h, xalloc.h.
-       (copyright_string): Use only most recent year.
-       (authorship_msgid): Wrap in N_().
-       (buffer): Now word*, not char*.  All uses changed.
-       (word): Remove macro; now in system.h.
-       (long_options, option_help_msgid, main): -c --print-chars ->
-       -b --print-bytes
-       (check_stdout): "write failed" -> "standard output"
-       (option_help_msgid): Wrap in N_().
-       (main): Invoke bindtextdomain and textdomain after setlocale.
-       Use strtoumax instead of doing the work ourselves.
-       Check for same_file_attributes as well as same_file.
-       (cmp): Use ssize_t for read returns, not size_t.
-       Do not assume that size_t is not narrower than int.
-       Do not assume that line numbers fit in 'long'.
-       (block_compare_and_count, block_compare):
-       Compiler now checks that buffers are word-aligned.
-       (block_compare_and_count): Count sizes with size_t, not long.
-       (sprintc): byte arg is unsigned char, not unsigned.
-
-       * src/analyze.c: Assume C89 or better.
-       int -> lin for line numbers.
-       int -> bool for booleans.
-       unsigned int -> size_t for sizes.
-       Use angle-brackets when including cmpbuf.h.
-       Include error.h, regex.h, xalloc.h.
-       (discard_confusing_lines, diff_2_files): Use zalloc rather
-       than xalloc+bzero.
-       (discard_confusing_lines): unsigned int -> lin for values that
-       are really line numbers.
-       (shift_boundaries): Do not inhibit hunk merges.
-       (build_reverse_script, build_script, diff_2_files): Use |, not ||.
-       (diff_2_files): no_details_flag & ~ignore_some_changes ->
-       files_can_be_treated_as_binary.  Esure that buffer size is a multiple
-       of sizeof (word).  Use file_block_read to read buffers.
-       (diff_2_files): Abort if output style is not one of the
-       expected styles.
-
-2001-11-23  Paul Eggert  <eggert@twinsun.com>
-
-       * src/Makefile.am, m4/vararrays.m4: New file.
-
-       * m4/prereq.m4 (jm_PREREQ_READUTMP):
-       Remove, as it gives autoheader the willies.
-
-       * m4/README, lib/prepargs.h, lib/prepargs.c, lib/offtostr.c,
-       lib/umaxtostr.c, lib/inttostr.c, lib/inttostr.h,
-       lib/imaxtostr.c, lib/freesoft.h: New files.
-
-       * lib/freesoft.c: Include config.h, freesoft.h rather than diff.h.
-       (free_software_msgid): Wrap contents in N_.
-
-       * lib/cmpbuf.h: Use prototypes instead of old-style functions.
-
-       * lib/cmpbuf.c:
-       Don't include system.h; instead, include config.h, unistd.h.
-       Use prototypes instead of old-style functions.
-       (block_read): Don't assume that int is no wider than size_t.
-
-       * lib/Makefile.am, po/POTFILES.in: New file.
-
-2001-11-22  Paul Eggert  <eggert@twinsun.com>
-
-       * pc/config.h:
-       Define filename_cmp as an object-like macro, not as a function-like
-       macro.
-
-       * exgettext: Always operate in the C locale.
-       Set AWK using a method that works even with broken shells.
-
-       * doc/Makefile.am: New file.
-
-       * configure.ac (AC_INIT):
-       Use src/diff.c, not diff.h, as the source files got removed.
-       (AM_CONFIG_HEADER): Switch from AC_CONFIG_HEADER.
-       (AC_ARG_PROGRAM, AC_MINIX): Remove.
-
-       (AC_PREREQ, AM_INIT_AUTOMAKE, ALL_LINGUAS, AC_PROG_AWK,
-       AM_PROG_CC_STDC, AC_PROG_RANLIB, AC_C_INLINE, AC_C_VARARRAYS,
-       DEFAULT_DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM,
-       AC_STRUCT_ST_MTIM_NSEC): Add.
-
-       (PR_PROGRAM): AC_DEFINE.
-
-       (AC_SYS_LARGEFILE): Use instead of our homebrew version.
-
-       (_GNU_SOURCE): Define if not defined.
-
-       (AC_CHECK_HEADERS): Add stdbool.h, unistd.h.
-       (AC_CHECK_TYPES): Add ptrdiff_t, uintmax_t.
-       (AM_GNU_GETTEXT, XGETTEXT): Add.
-
-       (WITH_MVFS_STAT_BUG, WITH_NFS_STAT_BUG): Remove.
-       (HAVE_MEMCHR): Remove.
-       (AC_CHECK_FUNCS): Add diraccess.
-       (AC_REPLACE_FUNCS): Add memchr, waitpid.
-       (jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC,
-        jm_FUNC_REALLOC, jm_PREREQ_ERROR, jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX,
-        jm_PREREQ_TEMPNAME, jm_AC_PREREQ_XSTRTOUMAX, AC_FUNC_FNMATCH): Add.
-       (fnmatch.h, regex.h): Do not create these files unless we're using
-       our own fnmatch and regex.
-
-       (AC_OUTPUT): Add doc/Makefile, intl/Makefile, lib/Makefile,
-       lib/posix/Makefile, m4/Makefile, po/Makefile.in, src/Makefile.
-
-       * Makefile.am: New file.
-
-       * po/en_GB.po: Don't translate "program" to "programme".
-
-2001-11-20  Paul Eggert  <eggert@twinsun.com>
-
-       * m4/prereq.m4: New file.
-
-2001-03-16  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/tempname.c (uint64_t):
-       Define if not defined, and if UINT64_MAX is not defined.
-
-2001-02-26  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/tempname.c: glibc 1.32
-
-2001-02-17  Paul Eggert  <eggert@twinsun.com>
-
-       * m4/Makefile.am.in: GNU fileutils 4.1
-
-2001-01-09  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/tempname.c (struct_stat64): New macro.
-       (direxists, __gen_tempname): Use it.  This avoids a portability problem
-       with Solaris 8.
-
-       * lib/tempname.c (<config.h>): Include if HAVE_CONFIG_H.
-       (<stddef.h>, <stdint.h>, <string.h>):
-       Include only if STDC_HEADERS || _LIBC.
-       (<fcntl.h>): Include only if HAVE_FCNTL_H || _LIBC.
-       (<unistd.h>): Include only if HAVE_UNISTD_H || _LIBC.
-       (<sys/time.h>): Include only if HAVE_SYS_TIME_H || _LIBC.
-       (__set_errno): Define this macro if <errno.h> doesn't.
-       (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE):
-       Define these macros if <stdio.h> doesn't.
-       (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR):
-       Define these macros if <sys/stat.h>
-       doesn't.  Ignore <sys/stat.h> S_ISDIR if STAT_MACROS_BROKEN.
-       (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64,
-       __xstat64): Define if not _LIBC.
-       (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC).
-       (__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY
-       || _LIBC; otherwise, fall back on plain "time".
-       Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600.
-
-       * lib/mkstemp.c (__GT_FILE): Define to zero if not defined.
-
-2000-10-25  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/hard-locale.c: New file.
-
-2000-02-05  Paul Eggert  <eggert@twinsun.com>
-
-       * exgettext: From GCC repository
-
-1999-07-06  Paul Eggert  <eggert@twinsun.com>
-
-       * lib/mkstemp.c: glibc 2.2
-
-1998-12-11  Paul Eggert  <eggert@twinsun.com>
-
-       * src/sdiff.c (lf_snarf):
-       Fix bug when help line wrapped around the input buffer.
-
-1998-09-15  Paul Eggert  <eggert@twinsun.com>
-
-       * diff.texi: Add @dircategory and @direntry.
-
-1998-09-14  Paul Eggert  <eggert@twinsun.com>
-
-       * Makefile.in (VERSION): Version 2.7.2.
-       (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM.
-       (PR_PROGRAM): All `configure' to define it.
-       (srcs): Add $(diffutils_srcs), freesoft.c, quotearg.c instead of
-       quote.c, quotearg.h.
-       (distfiles): Add acconfig.h, message/*.
-       (all): Depend on $(destfiles), not info.
-       (version.c): Parenthesize `GNU diffutils'.
-       (common_o): Add freesoft.o
-       (diff_o): quote.o -> quotearg.o
-       (diff3_o, sdiff_o): Likewise.
-       (diff.dvi): Depend on version.texi.
-       (diff.o diff3.o quotearg.o sdiff.o util.o):
-       New dependency on quotearg.h
-       (diff3.o): DIFF_PROGRAM -> DEFAULT_DIFF_PROGRAM.
-       (sdiff.o): Likewise.
-       (messages.po): Remove.
-       (message/msgid.po, message/template.po): New rules.
-       (maintainer-clean): Renamed from realclean.
-       (install): Install from source directory, if applicable.
-       Invoke install-info if needed.
-       (install-strip): New rule.
-       (check): Set DIFF.
-       (stamp-h.in): Don't put the date into the timestamp.
-       (D_dirs): Add $D/message.
-       ($D.tar.gz): Compress with gzip -9.
-       Don't use ln to create distribution; it doesn't work with symlinks.
-       (srcs, distfiles, diff_o, diff3_o, sdiff_o): Rename quotearg.c to
-       quotesys.c and quotearg.h to quotesys.h.
-
-       * configure.in (AC_PATH_PROG): Add PR_PROGRAM.
-       If available, prefer support for large files unless the user specified
-       one of the CPPFLAGS, LDFLAGS, or LIBS variables.
-       (AC_STRUCT_ST_RDEV): Add.
-       (HAVE_ST_FSTYPE_STRING): Add.
-       (--with-mvfs-stat-bug, --with-nfs-stat-bug): New options.
-       (HAVE_MEMCHR): New macro.
-       (AC_CHECK_FUNCS): Add sicprocmask.
-
-       * diff.h (XTERN): Renamed from EXTERN.
-       (struct filedata): Remove dir_p arg.
-       (struct comparison): New type.
-       (diff_2_files, diff_dirs)" Ise ot/
-       (error): Add printf attribute if applicable.
-       (free_software_msgid): New decl.
-       (pr_program): New decl.
-       (fatal): Add noreturn attribute.
-       (pfatal_with_name): Likewise.
-
-       * system.h (__attribute__): New macro.
-       (getenv): Don't declare if HAVE_STDLIB_H.
-       (CHAR_MAX): New macro.
-       (<locale.h>): New include.
-       (<locale.h>): Include before <libintl.h>.
-       (could_be_mvfs_stat_bug, could_be_nfs_stat_bug,
-       dev_may_have_duplicate_ino, same_special_file): New macros.
-       (same_file): Use them.
-
-       * cmp.c (authorship_msgid): New var.
-       (free_software_msgid): New decl.
-       (error): Now has printf attribute.
-       (try_help): Likewise.
-       (long_options): Don't assume ASCII.
-       (try_help): Now accepts operand arg.
-       (main): Check for -1, not EOF, when calling getopt_long.
-       Report --ignore-initial value when complaining about it.
-       Output copyright and free software info with -v.
-       Don't assume ASCII.
-       Report last operand when one is missing.
-       Report text of extra operand.
-       Move block_read into cmpbuf.c.
-
-       * diff.c (authorship_msgid): New var.
-       (quotesys.h): Include.
-       (ck_atoi): Remove.
-       (function_regexp_list, ignore_regexp_list): Now static.
-       (binary_flag): Renamed from binary_I_O.
-       (entire_new_file_flag, unidirectional_new_file_flag,
-       print_file_same_flag): Now static.
-       (numeric_arg): Renamed from ck_atoi.
-       New argument specifying the argument type.
-       (longopts, main): Don't assume ASCII.
-       (longopts): Remove old aliases --file-label, --entire-new-file,
-       --ascii, --print.
-       (main): Check for -1, not EOF, when calling getopt_long.
-       Use numeric_arg to report errors.
-       Report error if -l specified but pagination is not supported.
-       Report error if -S is specified twice with conflicting values.
-       Have --version conform to the new GNU standards.
-       Add new --from-file, --to-file, --inhibit-hun,-merge options.
-       Make the horizon at least as large as the context.
-       Add casts to pacify gcc -Wall.
-       (try_help): Add operand arg.
-       (option_help_msgid): Doc fix to match above.
-       (usage): Indent option_help_msgid.
-       (compare_files): Now takes struct comparison
-       instead of two directory names and a depth.
-       (NONEXISTENT, UNOPENED, ERRNO_ENCODE, ERRNO_DECODE):
-       New macros.
-       (DIR_P): New macro.
-       Report error if fflush does.
-
-       * cmpbuf.c (block_read): Moved here from cmp.c.
-
-       * cmpbuf.h (block_read): New decl.
-
-       * io.c (cmpbuf.h): Include.
-       (slurp): Check for arithmetic overflow when computing buffer size.
-
-       * dir.c (diff_dirs): Check for recursive directory loop.
-       Arg is now struct comparison const *.
-       (dir_loop): New function
-
-       * analyze.c (no_discards): Remove.
-       (inhibit): Remove.
-       (shift_boundaries): Don't inhibit.  If inhibit_hunk_merge is nonzero,
-       don't merge hunks.
-       (briefly_report): Now returns 2 if trouble, CHANGES otherwise.
-       (diff_2_files): Now takes struct comparison.  If briefly_report reports
-       trouble, pass it on to caller.
-
-       * side.c (print_half_line): Add brackets to pacify GCC -Wall.
-
-       * sdiff.c (quotesys.h): Include.
-       (DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM): Remove.
-       (free_software_msgid, editor_program, not_found): New vars.
-       (diffbin, edbin): Remove.
-       (editor_program): Renamed from edbin.
-       (edit, interact): Now take extra string arg.
-       (exiterr, fatal, perror_fatal, try_help): Add noreturn attribute.
-       (sigset_t, sigemptyset, sigmask, sigaddset, SIG_BLOCK, SIG_SETMASK):
-       (sigprocmask): New macros, if !HAVE_SIGPROCMASK.
-       (error): Now has printf attribute.
-       (longopts, main): Don't assume ASCII.
-       (try_help): New operand arg.
-       (usage): Conform to new GNU standards.
-       (main): Set static vars for editor and diff program.
-       Compare getopt_long result to -1, not EOF.
-       -v conforms to new GNU standard.
-       Complain better about extra and missing operands.
-       If HAVE_VFORK, block SIGINT and SIGPIPE in the parent, since when
-       the child munges its handlers it may somp on the parent.
-       Pass rname to intract.
-       Translate not-found message before forking.
-       (give_help): Just output it all at once.
-       (edit): New args lname, lline, rname, rline.
-       (edit): New command 'd'.
-       (interact): New args lname, rname.
-
-       * util.c (quotesys.h): Include.
-       (PR_PROGRAM): New macro.
-       (pfatal_with_name): Abort if error returns.
-       (fatal): Likewise.
-       (print_message_queue): Free message chain after printing.
-       (currently_recursive): Renamed from current_depth, and now a boolean.
-       (begin_output): Report error if fflush does.
-       Avoid stdio and gettext in child.
-
-       * diff3.c (quotesys.h): Include.
-       (free_software_msgid): New decl.
-       (RANGE_START, RANGE_END): Renamed from START and END.
-       (fatal, perror_with_exit, try_help): Add noreturn attribute.
-       (error): Add printf attribute.
-       (diff_program): Now a ptr, not an array.
-       Initialize to DEFAULT_DIFF_PROGRAM instead of DIFF_PROGRAM.
-       (longopts, main): Don't assume ASCII.
-       (main): Use DIFF environment var to specify name of diff program.
-       Compare getopt_long result to -1, not EOF.
-       -v now reports version according to new GNU standard.
-       Report spelling of extra operand, or last operand before missing one.
-       (try_help): Now takes operand arg.
-       (option_help_ms): Fix typo: missing comma.
-       (usage): Update as per current GNU standards.
-       (environ): Remove decl.
-       (read_diff): Invoke diff with --inhibit-hunk-merge.
-       Translate `not found' message before forking.
-       Quote name of diff program.
-       Pass horizon lines.
-       `memory exhausted' -> `Memory exhausted'
-
-       * pc/makefile (%.exe): Remove.
-       (pc-clean): Remove *.exe
-       * pc/makefile.sed (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM.
-       When editing mkinstalldirs rule, look for exec_prefix and prefix.
-       Add .exe when installing files.
-       * pc/emx/config.h (same_file): Add.
-       * pc/config.h (same_file): Remove.
-       * pc/djgpp/config.h: Adjust to latest patch from eliz.
-       * pc/djgpp/makefile.sed: Don't alter PROGRAMS.
-       * pc/pc.c: Update FSF address.
-       (quote_system_arg): Renamed from system_quote_arg.
-
-       * README: Add --with-mvfs-stat-bug, --with-nfs-stat-bug.
-
-       * getmsgids: Add copyright date and update FSF address.
-
-       * diff.texi: Document recent changes.
-       The patch doc still corresponds to patch 2.2, unfortunately.
-       Update GNU bug reporting address.  Omit Larry Wall's address;
-       it's obsolete and he's busy with perl.
-
-       * context.c: Fix spacing.
-
-       * NEWS: Mention --from-file=FILE, --to-file=FILE, ed.
-
-       * acconfig.h, freesoft.c, message/de.po, message/en_UK.po,
-       message/es.po, message/fr.po, message/pl.po, message/sv.po:
-       New files.
-
-       * ed.c: Remove `#if 0'ed code.
-
-       * normal.c, waitpid.c: Update FSF address.
-
-1998-03-15  Paul Eggert  <eggert@twinsun.com>
-
-       * quotesys.c: Renamed from quotearg.c.
-
-       * quotesys.h: Renamed from quotearg.h
-       (__QUOTESYS_P): Renamed from __QUOTEARG_P.
-
-1997-05-05  Paul Eggert  <eggert@twinsun.com>
-
-       * quotesys.c, quotesys.h: New file.
-
-Mon Nov 14 05:10:56 1994  Paul Eggert  <eggert@twinsun.com>
-
-       Add internationalization support.
-       Several messages have been changed slightly,
-       to make them more consistent and easier to translate.
-       All strings that are messages are passed through gettext once before
-       being used, so that they can be localized.
-       Each function and macro whose first parameter is a gettext msgid
-       has had its first parameter's name changed so it ends in `msgid'.
-       All arrays of msgids have had their names changed to end in `msgid'.
-       `getmsgids' uses this to determine which strings are msgids.
-
-       * pc/COPYING, pc/INSTALL, pc/config.h,
-       pc/djgpp/config.h, pc/djgpp/makefile.sed,
-       pc/emx/config.h, pc/emx/diff.def, pc/emx/gnuregex.def,
-       pc/emx/makefile.sed,
-       pc/makefile, pc/makefile.sed, pc/pc.c: New files, for PC support.
-
-       * getmsgids: New file.
-
-       * Makefile.in (PACKAGE, VERSION, diffutils_srcs, D): New vars.
-       (version.c, version.texi, messages.po): New files.
-       messages.po is built automatically from source files and `getmsgids'.
-       (distfiles): Add them, pc/*, and getmsgids.
-       (diff.info): Now depends on version.texi.
-       (realclean): Clean messages.po, version.*.
-       (dist): Just build $D.tar.gz.
-       ($D.tar.gz): New file, takes over old `dist' function.
-       Don't assume $(distfiles) are all in same directory.
-
-       * configure.in (AC_CHECK_HEADERS): Add libintl.h, locale.h.
-       (AC_CHECK_LIB): Check for -lintl.
-
-       * analyze.c (briefly_report): Rewrite `message (A?"B":"C")' as
-       `if (A) message ("B") : message ("C")'; this is for getmsgids.
-       (briefly_report, diff_2_files): For label, use file_label if set.
-       * diff.c (compare_files): Likewise.
-
-       * system.h (gettext): Declare; use a stub if ! HAVE_LIBINTL_H.
-       (setlocale): Declare; use a stub if ! HAVE_LOCALE_H.
-
-       * cmp.c, diff.c, diff3.c, sdiff.c (main):
-       Invoke setlocale first thing, to tell library we're internationalized.
-       (option_help_msgid): New constant.
-       (usage): Use it, so message is translated one option at a time.
-       * sdiff (help_msgid, give_help): Likewise.
-
-       * cmp.c (sprintc): Renamed from `printc'.
-       Now outputs to a buffer instead of stdout.
-       (cmp): Use new sprintc; it's easier to internationalize.
-
-       * diff.c (main): -D FOO now outputs `/* ! FOO */ instead of
-       `/* not FOO */'.
-
-       * sdiff.c (version_string): Fix decl typo: `const' was missing.
-       (trapsigs): Ignore sigaction failure, to be compatible with `signal'.
-
-       * util.c (struct msg, message5, print_message_queue):
-       Allocate just one block of memory to save a message.
-
-Wed Nov  9 17:42:44 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * sdiff.c (trapsigs): Don't check signal return value, since it's
-       bogus under djgpp.
-
-Mon Oct 31 07:27:27 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * Makefile.in (srcs, diff_o, diff3_o, sdiff_o):
-       New files quote.c, quote.o.
-
-       * diff.h (function_regexp, ignore_regexp): Replace lists of compiled
-       regexps with these single compiled regexps.  All users changed.
-       (regexp_list,function_regexp_list,ignore_regexp_list): Move to diff.c.
-       * diff.c (add_regexp): Build one big regexp instead of a regexp list.
-       (summarize_regexp_list): New function.
-       (regexp_list): Redesigned struct; moved here from diff.h.
-       (function_regexp_list, ignore_regexp_list): Likewise, for vars.
-
-       * context.c (find_function): Simplify interface:
-       don't return size of function line.  All callers changed.
-       (print_context_script, find_function): INT_MAX now denotes no
-       previous match; this is simpler than `- file->prefix_lines - 1'.
-
-       * diff3.c (read_diff): Quote arguments with system_quote_arg.
-       * sdiff.c (main): Use system_quote_arg to compute command.
-       * diff.c (option_list): Quote options with system_quote_arg.
-       * util.c (begin_output): Use system_quote_arg to compute command.
-
-       * util.c (pr_program): New var.
-       (analyze_hunk): Fix off-by-1 line length bug.
-       Match with one big regexp instead of a list of regexps.
-       Use new `trivial_length' local instead of comparing first byte to `\n'.
-       Help the compiler with linbuf local vars.
-
-       * system.h (system_quote_arg):
-       New function; replaces SYSTEM_QUOTE_ARG macro.
-
-Sat Oct 15 20:09:12 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * system.h (_tolower): Define if not already defined.
-       * io.c (find_and_hash_each_line): Change tolower to _tolower; this
-       speeds up diff -i considerably on some hosts (e.g. Solaris 2.3).
-       * util.c (line_cmp): Likewise.
-       * ifdef.c (groups_letter_value): Likewise.
-
-       * diff.h (ignore_some_line_changes): Remove.  All users changed.
-       * io.c (find_and_hash_each_line): Don't invoke line_cmp if the length
-       differs and -i is in force.  Don't assume ISSPACE ('\n') is nonzero.
-
-       * diff.h (xmalloc_exit_failure): New variable.
-       All `main' programs set this variable at the start.
-       xmalloc and xrealloc are now taken from GNU library.
-       * cmp.c (main): Align buffer size to word size; some mallocs care.
-       * io.c (slurp): Likewise.
-       * diff.c (add_exclude): Can now assume xrealloc (0, ...) works.
-       (add_regexp): Free storage on failure.  Allocate storage all at one go.
-       * system.h (malloc, realloc): Remove unused declarations.
-       * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Remove.
-       * sdiff.c (diffarg): Take advantage of cleaner xrealloc semantics.
-
-       * io.c (ROL): Use sizeof to make it more generic.
-
-       * Makefile.in (common_o): New variable.
-       Link error.o and xmalloc.o into all programs.
-       (check): Depend on $(PROGRAMS).
-
-       * diff.h (error): Change to GNU library standard.  All callers changed.
-       * diff3.c (main): Use strerror (EISDIR) instead of "Is a directory".
-       (fatal, perror_with_exit): Use `error'.
-       * util.c (perror_with_name, fatal): Use GNU `error'.
-       (error): Remove.
-
-Wed Oct 12 17:04:40 1994  David J. MacKenzie  (djm@duality.gnu.ai.mit.edu)
-
-       * cmp.c (main): Set xmalloc_exit_failure.
-
-Sat Oct  1 05:24:19 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * Version 2.7 released.
-
-       * configure.in (AC_HEADER_SYS_WAIT): Add.
-       (AC_CHECK_HEADERS): Remove sys/wait.h.
-       (AC_CHECK_FUNCS): Add tmpnam.
-       * system.h (<sys/wait.h>, WEXITSTATUS): Use simpler scheme
-       now that HAVE_SYS_WAIT_H is not set on hosts
-       that are incompatible with Posix applications.
-
-       * util.c (dir_file_pathname): Use filename_lastdirchar not strrchr.
-       * sdiff.c (expand_name): Likewise.
-       (private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting.
-       (exists, letters): Omit if HAVE_TMPNAM.
-
-       * diff3.c (read_diff): If STAT_BLOCKSIZE yields zero,
-       adjust it to a more reasonable value.
-
-Sat Sep 24 20:36:40 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm.
-       (private_tempnam): Specialize for sdiff to avoid portability problems.
-
-Thu Sep 22 16:47:00 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in (AC_ARG_PROGRAM): Added.
-       (AC_OUTPUT): Add [date > stamp-h].
-
-       * Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS,
-       NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables.
-       (check, stamp-h.in, cmp.o, util.o): New targets.
-       (edit_program_name): New variable; replaces old binprefix method.
-       (install, uninstall): Use it.
-       (binprefix): Removed.
-       (distfiles): Add stamp-h.in.
-       (clean): Clean stamp-h.
-       (config.hin, config.h): Use time stamp files.
-       (cmp_o): Add $(LIBOBJS).
-       (install): Install info files from srcdir if they're not in `.'.
-
-       * cmp.c, io.c (word): Don't define if already defined.
-
-       * comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin.
-       Use NULL_DEVICE instead of "/dev/null".
-       (cmp): Use %lu instead of %ld when it is more likely to be right.
-
-       * diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in,
-       util.c.
-
-       * diff3.c (main): Give proper diagnostic if too many labels were given.
-       (read_diff): Use SYSTEM_QUOTE_ARG.
-
-       * system.h: <string.h>: Include if HAVE_STRING_H, too.
-       <ctype.h>: Include here.  All includers changed.
-       (CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that
-       work around common <ctype.h> problems.
-       (O_BINARY): Remove.
-       (SYSTEM_QUOTE_ARG): New macros.
-
-       * diff.c: Add comment.
-
-       * util.c (PR_PROGRAM): Moved here from diff.h.
-       (begin_output): Use SYSTEM_QUOTE_ARG.
-
-       * io.c (read_files): Set mode to binary before returning 1.
-
-       * sdiff.c (TMPDIR_ENV): New macro.
-       (DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency.
-       (expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype
-       namespace contamination.
-       (main): Use SYSTEM_QUOTE_ARG.
-       (private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir.
-
-Tue Sep 13 18:46:43 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in (AC_FUNC_MEMCHR): Remove.  Autoconf didn't adopt this,
-       since we need not worry about an old experimental library
-       where memchr didn't work.
-       (AC_FUNC_MEMCMP): Not needed, since we only test for equality.
-       (AC_REPLACE_FUNCS): Add test for memchr.
-       (AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached.
-       (AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts.
-
-       * system.h (memcmp): Define in terms of bcmp.
-       Use HAVE_MEMCHR to test for all mem* routines.
-
-       * Makefile.in (srcs): Remove memcmp.c.
-       We use bcmp if memcmp doesn't work, since we only test for equality.
-
-Mon Sep 12 15:52:22 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin.
-       (AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2.
-       (AC_CHECK_HEADERS): Remove now-redundant check for <string.h>.
-       (AC_CHECK_FUNCS): Check for strchr.
-       (AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose
-       macros when suitable.
-       * memcmp.c: New file.
-       * Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix):
-       Default to autoconf-specified strings.
-       (COMPILE): Use the defaults.
-       (srcs): Add memcmp.c.
-       (distfiles): Rename config.h.in->config.hin, install.sh->install-sh.
-       (Makefile, config.h, config.hin, config.status): Rework for
-       compatibility with Autoconf 2.
-       * io.c (binary_file_p): Assume non-broken memchr.
-       * memchr.c: Assume compiler understands void *; otherwise
-       we don't match GCC's internal declaration of memchr.
-       * system.h: Use more modern autoconf approach to standard C headers.
-       * version.c: Include <config.h>, not "config.h".
-
-       * diff.c, diff.h (ignore_some_line_changes):
-       New variable; replaces `length_varies'.
-       (line_end_char): Replace with '\n'; it wasn't being used consistently.
-
-       * io.c (find_and_hash_each_line): Fix inconsistencies with -b -w -i and
-       incomplete lines.  Put incomplete lines into their own bucket.
-       This means line_cmp no longer needs line length arguments,
-       and equivalence classes' line lengths no longer need to include \n.
-       Invoke line_cmp only if ignore_some_line_changes.
-       (prepare_text_end): -B no longer ignores missing newlines.
-       (read_files): Allocate another bucket for incomplete lines.
-
-       * util.c (line_cmp): Now takes just two arguments.  No longer
-       optimizes for common case of exact equality; the caller does that
-       optimization now.  The caller is changed accordingly.
-       Optimize for the common case of mostly equality.
-       Use isupper+tolower instead of islower+toupper, for consistency.
-
-       * waitpid.c (waitpid): Fix typo with internal scoping.
-
-Thu Sep  8 08:23:15 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in: Revamp for Autoconf 2.
-       * memchr.c, waitpid.c: New source files for substitute functions.
-       * Makefile.in (diff_o, diff3_o, sdiff_o): Add $(LIBOBJS).
-       (srcs): Add memchr.c, waitpid.c.
-       (distfiles): Add install.sh, memchr.c, waitpid.c, install.sh.
-       * system.h: Use Autoconf 2 style HAVE_DIRENT_H etc. macros for dirs.
-       * dir.c (dir_sort): Prefer NAMLEN (p) to strlen (p->d_name).
-       Change VOID_CLOSEDIR to CLOSEDIR_VOID for Autoconf 2.
-       * sdiff.c, util.c (memchr, waitpid): Remove; use new substitutes.
-       * diff3.c (read_diff): Use new waitpid substitute.
-
-       * cmp.c, diff.c, diff3.c, sdiff.c (check_stdout, try_help): New fns.
-       (usage): Just print more detailed usage message; let caller exit.
-       * diff.c (option_help): New variable.
-       (filetype): Add Posix.1b file types.
-
-Fri Sep  2 16:01:49 1994  Paul Eggert  <eggert@twinsun.com>
-
-       * configure.in: Switch to new autoconf names.  Add sys/file.h test.
-       * Makefile.in (distclean): Clean config.cache, config.log
-       (used by new autoconf).
-
-       * diff.c, diff3.c, (main), sdiff.c (trapsigs): If we'll have children,
-       make sure SIGCHLD isn't ignored.
-
-       * diff3.c (DIFF_CHUNK_SIZE): Removed.  Get size from STAT_BLOCKSIZE.
-       (INT_STRLEN_BOUND): New macro.
-
-       * ifdef.c (format_group, groups_letter_value):
-       Use * instead of [] in prototypes.
-
-       * system.h: Include <sys/file.h> only if HAVE_SYS_FILE_H.
-       (S_IXGRP, S_IXOTH, S_IXUSR): Remove unused macros.
-
-       * util.c (begin_output): Check fdopen result.
-
-       The following changes simplify porting to non-Posix environments.
-       * cmp.c, diff.c, diff3.c, sdiff.c, (main): Call initialize_main first.
-       * diff.c (binary_I_O): New variable for --binary option.
-       (main, usage, compare_files): Support --binary option.
-       (compare_files): Use filename_lastdirchar to find last
-       directory char in a file name.
-       * cmp.c (main), diff.c (compare_files), dir.c (compare_names,
-       diff_dirs): Use filename_cmp to compare file names.
-       Use same_file to determine whether two files are the same.
-       * context.c (print_context_label): Check whether ctime yields 0.
-       * diff3.c (read_diff), sdiff.c (cleanup, main, waitpid),
-       util.c (begin_output): Use popen+pclose if !HAVE_FORK.
-       * io.c (sip): If HAVE_SETMODE, test for binary files in O_BINARY mode.
-       * sdiff.c (ck_fdopen): Function removed.
-       (edit): Use system if !HAVE_FORK.
-       (execdiff): Now assumes caller has pushed all args, plus trailing 0.
-       All callers changed.
-       (private_tempnam): Try TMP if TMPDIR isn't defined.
-       Fit temporary filenames into 8.3 limit.
-       * system.h (STAT_BLOCKSIZE): Don't define if already defined.
-       (min, max): Undef if already defined.
-       (filename_cmp, filename_lastdirchar, HAVE_FORK, HAVE_SETMODE,
-       initialize_main, O_BINARY, same_file): New macros.
-
-Fri Jun 17 11:23:53 1994  David J. MacKenzie  (djm@geech.gnu.ai.mit.edu)
-
-       * Makefile.in (info, dvi, diff.dvi): New targets.
-       (clean): Remove TeX output files.
-
-Fri Jun 17 05:37:52 1994  Paul Eggert  (eggert@twinsun.com)
-
-       * cmp.c, io.c (word): Change from typedef to #define, to avoid
-       collision with Unicos 8.0 <sys/types.h>, which also typedefs `word'.
-
-Thu Apr 15 00:53:01 1994  Paul Eggert  (eggert@twinsun.com)
-
-       * diff3.c (scan_diff_line), util.c (print_number_range): Don't
-       rely on promotion to make the old-style parameter type agree
-       with the prototype parameter type; this doesn't work on
-       Apollos running bsd4.3.
-
-Mon Jan  3 02:05:51 1994  Paul Eggert  (eggert@twinsun.com)
-
-       * Makefile.in (LDFLAGS): Remove -g.  Change all link commands
-       to use both $(CFLAGS) and $(LDFLAGS).
-
-Mon Dec 13 12:23:27 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * system.h: Don't assume dirent.h exists just because
-       _POSIX_VERSION is defined.
-
-Fri Dec  3 18:39:39 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main): allow -pu.
-
-Tue Nov 23 03:51:08 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Makefile.in (distclean): Remove config.h.
-
-Wed Nov 10 00:28:27 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Version 2.6 released.
-
-       * analyze.c (too_expensive): New variable, for heuristic to
-       limit the worst-case cost to O(N**1.5 log N) at the price of
-       producing suboptimal output for large inputs with many differences.
-       (diff_2_files): Initialize it.
-       (struct partition): New type.
-       (SNAKE_LIMIT): New macro; merely documents already-used number 20.
-       (diag): New `minimal' arg; all callers changed.  Put results into
-       struct partition.  Apply `too_expensive' heuristic.  Tune.
-       (compareseq): New `minimal' arg; all callers changed.  Tune.
-       (shift_boundaries): Improve heuristic to also coalesce adjacent runs
-       of changes more often.
-
-       * diff.c (long_options, main, usage): Add `--help'.
-       (main): Send version number to stdout, not stderr.
-       (usage): Send usage to stdout, not stderr.
-       (compare_files): Initialize `inf' properly.
-
-       * io.c (word): Change to `int'; it makes a big difference on x86.
-       (sip, slurp): Put off allocating room to hold the whole file until we
-       have to read the whole file.  This wins if the file turns out
-       to be binary.
-
-       * util.c (xmalloc, xrealloc): "virtual memory" -> "memory"
-       (primes): Omit large primes if INT_MAX is small.
-
-       * sdiff.c (usage): Send usage to stdout, not stderr.
-       (long_options, main, usage): Add `--help'.
-       (main): Send version number to stdout, not stderr.  Exit afterwards.
-
-       * diff3.c (usage): Send usage to stdout, not stderr.
-       (long_options, main, usage): Add `--help'.
-       (read_diff): Detect integer overflow in buffer size calculations.
-
-       * cmp.c (word): New type.  All uses of `long' for
-       word-at-a-time comparisons changed to `word'.
-       (long_options, main, usage): Add `--help'.
-       (usage): Send usage to stdout, not stderr.
-       (main): Add `-v'.  Send version number to stdout, not stderr.
-
-       * configure.in (AC_HAVE_HEADERS): Add unistd.h; remove AC_UNISTD_H.
-
-Mon Sep 27 07:20:24 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (add_exclude_file): Cast memchr to (char *)
-       to suppress bogus warnings on some nonstandard hosts.
-
-       * Makefile.in (cmp): Add version.o.
-
-       * analyze.c (diff_2_files): Work around memcmp bug with size=0.
-
-       * cmp.c (main, usage, version_string): Add --version option.
-
-       * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H.
-       (memchr): Declare only if !HAVE_MEMCHR.  These changes are
-       needed to keep some nonstandard hosts happy.
-
-       * util.c (memchr): Make first arg char const *
-       to match standard.
-       (xmalloc, xrealloc): Cast malloc, realloc
-       to (VOID *) to suppress bogus warnings on some nonstandard hosts.
-
-       * diff3.c (xmalloc, xrealloc): Cast malloc, realloc
-       to (VOID *) to suppress bogus warnings on some nonstandard hosts.
-
-       * sdiff.c (xmalloc, xrealloc): Cast malloc, realloc
-       to (VOID *) to suppress bogus warnings on some nonstandard hosts.
-       (lf_copy, lf_skip, lf_snarf): Cast memchr to (char *)
-       to suppress bogus warnings on some nonstandard hosts.
-       (memchr): Make first arg char const *
-       to match standard.
-
-Mon Sep 27 00:23:37 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Version 2.5 released.
-
-       * analyze.c (diff_2_files): Work around memcmp bug with size=0.
-
-       * cmp.c (main, usage, version_string): Add --version option.
-       * Makefile.in (cmp): Add version.o.
-
-       * diff.c (add_exclude_file): Cast memchr to (char *)
-       to suppress bogus warnings on some nonstandard hosts.
-       * sdiff.c (lf_copy, lf_skip, lf_snarf): Likewise.
-
-       * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Cast malloc, realloc
-       to (VOID *) to suppress bogus warnings on some nonstandard hosts.
-
-       * sdiff.c, util.c (memchr): Make first arg char const *
-       to match standard.
-
-       * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H.
-       (memchr): Declare only if !HAVE_MEMCHR.  These changes are
-       needed to keep some nonstandard hosts happy.
-
-       * xmalloc.c: Include <sys/types.h> always; some nonstandard hosts
-       need it for size_t even if STDC_HEADERS.
-
-Sat Sep 18 01:33:07 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * configure.in (AC_STAT_MACROS_BROKEN): Add.
-       * system.h (S_IS{BLK,CHR,DIR,FIFO,REG,SOCK}): Fix defns if
-       STAT_MACROS_BROKEN.
-
-       * Makefile.in (diff3, sdiff, cmp): Do not link $(ALLOCA).
-
-       * analyze.c (discard_confusing_lines): Make defn static, like decl.
-       * sdiff.c (xmalloc): Likewise.
-
-       * ifdef.c (format_group): Ensure isdigit argument isn't < 0.
-
-       * side.c (print_half_line): Use isprint, since some hosts lack isgraph.
-       * util.c (output_1_line): Likewise.  Ensure its argument isn't < 0.
-       (xmalloc, xrealloc): Remove needless casts.
-
-       * system.h (volatile, const):
-       Define these before including any system headers,
-       so that they're used consistently in all system includes.
-       (getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some
-       <stdlib.h>s don't declare them.
-       (memchr): Likewise for <string.h>.
-
-       * cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first.
-       * diff.c: Remove redundant "system.h" inclusion.
-
-       * diff3.c (xmalloc): Now static.
-       (xmalloc, realloc): Remove needless casts.
-       (READNUM): Ensure isdigit argument isn't negative.
-
-Wed Sep 14 07:14:15 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Version 2.4 released.
-
-       * ifdef.c (scan_char_literal): New function, for new %c'x' and
-       %c'\ooo' format specs.
-       (format_group, print_ifdef_lines): Use it.  Remove %0 format spec.
-
-       * cmp.c (cmp): Don't try to read past end of file; this doesn't
-       work on ttys.
-
-       * system.h, version.c: #include <config.h>, not "config.h", to allow
-       configuring in a separate directory when the source directory has
-       already been configured.
-       * Makefile.in (COMPILE): New defn, with proper -I options so that
-       `#include <config.h>' works.
-       (.c.o, diff3.o, sdiff.o): Use it.
-
-Mon Sep 13 06:45:43 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main, longopts): Add --line-format=FORMAT option.
-       (specify_format): Args no longer const pointers.  All callers changed.
-
-       * ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats.
-       (struct group): New struct.
-       (print_ifdef_lines): Use it to simplify argument passing.
-       Remove the convention that last arg -1 signifies that the lines
-       from file 2 are the same as the lines from file 1; this
-       convention no longer works, now that line numbers might be
-       printed out, since the line numbers may differ.
-       Add first FILE * argument to output to.  All callers changed.
-       Use a faster test for the single-fwrite optimization.
-       (format_group, scan_printf_spec, groups_letter_value): New functions.
-
-       * diff.h (group_format, line_format): No longer const pointers.
-       (format_ifdef): 1st arg is no longer const pointer.
-
-       * configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H.
-       * system.h <limits.h>, <stdlib.h>, <string.h>:
-       Include only if HAVE_LIMITS_H etc.
-
-       * system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer
-       these standard names to the traditional names (bcmp, bcpy, index,
-       rindex, struct direct).  All callers changed.
-
-       * system.h (PARAMS, VOID):
-       Define earlier so that malloc decl can use VOID.
-       (STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K.
-
-Fri Sep  3 00:21:02 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (compare_files): Two files with the same name must be
-       the same file; avoid a needless `stat' in that case.
-
-Fri Aug 27 06:59:03 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Pervasive changes for portability to 64-bit hosts:
-       Add prototypes to function declarations.
-       Use size_t, not int, when needed.
-
-       * Other pervasive changes:
-       Use `const' more often.
-       Use STD{IN,OUT,ERR}_FILENO instead of [012].
-       Use 0, not NULL, for portability to broken hosts.
-
-       * Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch].
-       (distfiles): New files config.h.in, mkinstalldirs.
-       (.c.o): Add -DHAVE_CONFIG_H.
-
-       * analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment.
-       (diff_2_files): Use l.c.m., not max, of files' buffer sizes.
-
-       * cmp.c: Make globals static when possible.
-
-       (file): Now a 2-element array; replaces `file1' and `file2'.
-       (file_desc, buffer): Likewise, for file[12]_desc and buf[12].
-       (main): Likewise, for stat_buf[12].  Index these variables with `i'.
-
-       (ignore_initial): New var.
-       (long_options): Now const.  Add `--ignore-initial'.
-       (usage): Sort options and add `--ignore-initial'.
-       (main, cmp): Add `--ignore-initial' support.
-
-       (main): `cmp - -' now succeeds.
-       When comparing standard input to a file, and using a shortcut (e.g.
-       looking at file sizes or inode numbers), take the lseek offset into
-       account before deciding whether the files are identical.
-       Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts.
-       Use l.c.m. of files' buffer sizes, not 8 * 1024.
-       ferror (stdout) does not imply errno has a useful value.
-       If 2nd file is "-", treat it first, in case stdin is closed.
-
-       (cmp): Always compute `char_number', `smaller' for speed and simplicity.
-       Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input',
-       as per Posix.2.
-
-       (block_compare_and_count): Increment line_number argument.
-       Remove end_char argument; it's always '\n'.  All callers changed.
-       Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts.
-       (block_compare): Minimize differences with block_compare_and_count.
-
-       (block_read): Coalesce `bp += nread's.
-
-       (printc): Remove `FILE *' arg; output to stdout.  All callers changed.
-
-       * configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF.
-       Configure into config.h.
-
-       * context.c (print_context_label):
-       Standard input's st_mtime is no longer a special case
-       here, since `compare_files' now sets it to the current time.
-
-       * diff.c (usage): Sort options.
-       (filetype): New function.
-       (compare_files): Set stdin's st_mtime to be the current time.
-       Leave its name "-" instead of changing it to "Standard Input";
-       to test whether a file is stdin, we must compare its name to "-" instead
-       of its desc to 0, since if it's closed other file descs may be 0.
-       When comparing standard input to a file, and using a shortcut (e.g.
-       looking at file sizes or inode numbers), take the lseek offset into
-       account before deciding whether the files are identical.
-       Pretend that nonexistent files have the same filetype as existing files.
-       Rename `errorcount' to `failed', since it's boolean.
-       In directory comparisons, if a file is neither a regular file nor a
-       directory, just print its type and the other file's type.
-
-       * diff.h (Is_space, textchar): Remove.
-       (struct msg, msg_chain, msg_chain_end): Move to util.c.
-       (VOID): Move to system.h.
-       (line_cmp, version_string, change_letter, print_number_range,
-       find_change): New decls.
-
-       * diff.texi:
-       whitespace -> white space.  It now stands for whatever isspace yields.
-       Add --ignore-initial.
-
-       * diff3.c (VOID): Move to system.h.
-       (version_string): Now char[].
-       (usage): Sort options.
-       (process_diff): Pacify `gcc -Wall' with a useless assignment.
-       (read_diff): pid is of type pid_t, not int.  Use waitpid if available.
-       (output_diff3): Simplify test for `\ No newline at end of file' message.
-
-       * dir.c (struct dirdata): Rename `files' to `names' to avoid confusion
-       with external struct file_data `files'.
-
-       * io.c (line_cmp): Move declaration to diff.h.
-       (textchar): Remove.
-       (find_and_hash_each_line): Use locale's definition of white space
-       instead of using one hardwired defn for -b and another for -w.
-
-       * normal.c (change_letter, print_number_range, find_change):
-       Move decls to diff.h.
-       (print_normal_hunk): Now static.
-
-       * sdiff.c (SEEK_SET): Move to system.h.
-       (version_string): Now char[], not char*.
-       (private_tempnam): Remove hardcoded limit on temporary file names.
-       (exiterr, perror_fatal, main): When exiting because of a signal,
-       exit with that signal's status.
-       (lf_refill, main, skip_white, edit, interact): Check for signal.
-       (ignore_SIGINT): Renamed from `ignore_signals'.
-       (NUM_SIGS, initial_handler): New macros.
-       (initial_action, signal_received, sigs_trapped): New vars.
-       (catchsig, trapsigs): Use sigaction if possible, since this closes the
-       windows of vulnerability that `signal' has.  Use RETSIGTYPE not void.
-       When a signal comes in, just set a global variable; this is safer.
-       (checksigs, untrapsig): New functions.
-       (edit): Pacify `gcc -Wall' with a useless assignment.
-       Respond to each empty line with help, not to every other empty line.
-       (private_tempnam): Remove hardcoded limit on temporary file name length.
-       Don't assume sizeof (pid_t) <= sizeof (int).
-
-       * system.h: (S_IXOTH, S_IXGRP, S_IXUSR,
-       SEEK_SET, SEEK_CUR,
-       STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO):
-       New macros, if system doesn't define them.
-       (volatile): Don't define if already defined.
-       (PARAMS): New macro.
-       (VOID): Move here from diff.h.
-
-       * util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h.
-       (message5): New function.
-       (pr_pid): New var.
-       (begin_output): Allocate `name' more precisely.
-       Put child pid into pr_pid, so that we can wait for it later.
-       Don't check execl's return value, since any return must be an error.
-       (finish_output): Detect and report output errors.
-       Use waitpid if available.  Check pr exit status.
-       (line_cmp): Use locale's definition of white space
-       instead of using one hardwired defn for -b and another for -w.
-       (analyze_cmp): Avoid double negation with `! nontrivial'.
-       Pacify `gcc -Wall' be rewriting for-loop into do-while-loop.
-       (dir_file_pathname): New function.
-
-       * version.c (version_string): Now char[], not char*.
-
-Thu Jul 29 20:44:30 1993  David J. MacKenzie  (djm@wookumz.gnu.ai.mit.edu)
-
-       * Makefile.in (config.status): Run config.status --recheck, not
-       configure, to get the right args passed.
-
-Thu Jul 22 10:46:30 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi'
-       with `[ TEST ] || ACTION || exit' so that the containing for-loop exits
-       with proper status for `make'.
-
-Thu Jul  8 19:47:22 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
-
-       * Makefile.in (installdirs): New target.
-       (install): Use it.
-       (Makefile, config.status, configure): New targets.
-
-Sat Jun  5 23:10:40 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Makefile.in (dist): Switch from .z to .gz.
-
-Wed May 26 17:16:02 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main): Cast args to compare_files, for traditional C.
-       * side.c (print_sdiff_common_lines_print_sdiff_hunk): Likewise.
-       * analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined
-       properly.
-
-Tue May 25 14:54:05 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * analyze.c (diff_2_files):  With -q, do not report that files differ
-       if all their differences are ignored.
-       (briefly_report): New function.
-       * diff.h (ignore_some_changes): New variable.
-       * diff.c (compare_files): Don't use the file size shortcut if
-       ignore_some_changes is nonzero, since the file size may differ
-       merely due to ignored changes.
-       (main):  Set ignore_some_changes if we might ignore some changes.
-       Remove unsystematic assignment of 0 to static vars.
-       * io.c (read_files): New argument PRETEND_BINARY says whether to
-       pretend the files are binary.
-
-       * diff3.c (tab_align_flag): New variable, for new -T option.
-       (main, usage, output_diff3): Add support for -T.
-
-Sun May 23 15:25:29 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * dir.c (dir_sort): Always init `data' to avoid GCC warning.
-
-Sat May 22 15:35:02 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Makefile.in (dist): Change name of package from diff to diffutils.
-       Don't bother to build .Z dist; .z suffices.
-
-Fri May 21 16:35:22 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c: Include "system.h" to get memchr declaration.
-       * system.h (memchr): Declare if !HAVE_MEMCHR, not if
-       !HAVE_MEMCHR && !STDC_HEADERS.
-
-Wed May 19 17:43:55 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * Version 2.3 released.
-
-Fri Apr 23 17:18:44 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * io.c (find_identical_ends): Do not discard the last HORIZON_LINES
-       lines of the prefix, or the first HORIZON_LINES lines of the suffix.
-       * diff.c (main, longopts, usage): Add --horizon-lines option.
-       * diff3.c (main, process_diff, read_diff): Invoke second diff
-       with --horizon-lines determined by the first diff.
-       * diff.h, diff3.c (horizon_lines): New variable.
-
-Mon Mar 22 16:16:00 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-
-       * system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero):
-       Don't define if already defined.
-
-Fri Mar  5 00:20:16 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * diff.c (main): Use NULL in arg to compare_files.
-
-Thu Feb 25 15:26:01 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-
-       * system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS,
-       not #if !HAVE_MEMCHR || !STDC_HEADERS.
-
-Mon Feb 22 15:04:46 1993  Richard Stallman  (rms@geech.gnu.ai.mit.edu)
-
-       * io.c (find_identical_ends): Move complicated arg outside GUESS_LINES.
-
-Mon Feb 22 12:56:12 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-
-       * Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<.
-
-Sat Feb 20 19:18:56 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * io.c (binary_file_p): Return zero if file size is zero.
-
-Fri Feb 19 17:31:32 1993  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
-
-       * Version 2.2 released.
-
-       * system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't
-       define if already defined.
-
-Wed Feb 17 17:08:00 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
-
-       * Makefile.in (srcs): Remove limits.h.
-
-Thu Feb 11 03:36:00 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * diff3.c (xmalloc): No longer static.
-
-       * sdiff.c (edit): Allocate buf dynamically.
-
-       * dir.c (dir_sort): Handle VOID_CLOSEDIR.
-
-Wed Feb 10 00:15:54 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * limits.h: File deleted (should never have been there).
-
-Tue Feb  9 03:53:22 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last.
-
-Wed Feb  3 15:42:10 1993  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
-
-       * system.h: Don't #define const; let configure do it.
-
-Mon Feb  1 02:13:23 1993  Paul Eggert  (eggert@hal.gnu.ai.mit.edu)
-
-       * Version 2.1 released.
-
-       * Makefile.in (dist): Survive ln failures.  Create .tar.z
-       (gzipped tar) file as well as .tar.Z (compressed tar) file.
-
-Fri Jan  8 22:31:41 1993  Paul Eggert  (eggert@twinsun.com)
-
-       * side.c (print_half_line): When the input position falls
-       outside the column, do not output a tab even if the output
-       position still falls within the column.
-
-Mon Dec 21 13:54:36 1992  David J. MacKenzie  (djm@kropotkin.gnu.ai.mit.edu)
-
-       * Makefile.in (.c.o): Add -I.
-
-Fri Dec 18 14:08:20 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * configure.in: Add HAVE_FCNTL_H, since system.h uses it.
-
-Tue Nov 24 10:06:48 1992  David J. MacKenzie  (djm@goldman.gnu.ai.mit.edu)
-
-       * Makefile.in: Note change from USG to HAVE_STRING_H.
-
-Mon Nov 23 18:44:00 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * io.c (find_and_hash_each_line): When running out of lines,
-       double the number of allocated lines, instead of just doubling
-       that number minus the prefix lines.  This is more likely to
-       avoid the need for further memory allocation.
-
-Wed Nov 18 20:40:28 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * dir.c (dir_sort): Plug memory leak: space holding directory
-       contents was not being reclaimed.  Get directory size from
-       struct file_data for initial guess at memory needed.
-       Detect errors when reading and closing directory.
-       (diff_dirs): Pass struct file_data to dir_sort.  Finish plugging leak.
-       * diff.c (compare_files): Pass struct file_data to diff_dirs.
-
-       * io.c (find_and_hash_each_line): Don't assume alloc_lines is
-       nonzero when allocating more lines.
-
-Thu Nov 12 16:02:18 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main): Add `-U lines' as an alias for `--unified=lines'.
-
-       * diff3.c (usage): Add third --label option in example.
-
-       * util.c (analyze_hunk): Fix test for ignoring blank lines.
-
-       * configure.in, system.h: Avoid USG; use HAVE_TIME_H etc. instead.
-
-Mon Nov  9 05:13:25 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff3.c (main, usage): Add -A or --show-all.
-       -m now defaults to -A, not -E.  Allow up to three -L options.
-       (output_diff3_edscript, output_diff3_merge):
-       Remove spurious differences between these two functions.
-       Output ||||||| for -A.  Distinguish between conflicts and overlaps.
-       (dotlines, undotlines): New functions that output `Ns', not `N,Ns'.
-       (output_diff3_edscript, output_diff3_merge): Use them.
-
-       * io.c (find_identical_ends): shift_boundaries needs an extra
-       identical line at the end, not at the beginning.
-
-       * sdiff.c (edit): execvp wants char **, not const char **.
-
-Mon Oct 19 04:39:32 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * context.c (print_context_script, find_function): Context
-       line numbers start with - file->prefix_lines, not 0.
-
-       * io.c (binary_file_p): Undo last change; it was a library bug.
-
-Sun Oct 18 00:17:29 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * io.c (binary_file_p): Consider empty file as non-binary.
-
-Mon Oct  5 05:18:46 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff3.c (main, make_3way_diff, using_to_diff3_block): Don't
-       report bogus differences (for one of -mexEX3) just because the
-       file0-file1 diffs don't line up with the file0-file2 diffs.
-       (This is entirely possible since we don't use diff's -n
-       option.)  Always compare file1 to file2, so that diff3 sees
-       those changes directly.  Typically, file2 is now the common
-       file, not file0.
-       (output_diff3_merge): The input file is file 0, not the common file.
-
-       (FC, FO): New macros; they replace FILE1, FILE0 for two-way diffs,
-       to distinguish them from three-way diffs.
-
-       * diff3.c (using_to_diff3_block): Fold repeated code into loops.
-
-       * diff3.c (make_3way_diff, process_diff): Have the *_end
-       variable point to the next field to be changed, not to the last
-       object allocated; this saves an if-then-else.
-
-       * diff3.c (process_diff): Use D_NUMLINES instead of its definiens.
-
-       * diff3.c: Make fns and vars static unless they must be external.
-
-Wed Sep 30 09:21:59 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * analyze.c (diff_2_files): OUTPUT_IFDEF is now robust.
-       * diff.h (ROBUST_OUTPUT_STYLE): Likewise.
-       (default_line_format): Remove.  All refs removed.
-
-       * ifdef.c (print_ifdef_lines): Add %L.  Optimize %l\n even if user
-       specified it, as opposed to its being the default.
-
-Tue Sep 29 19:01:28 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (longopts, main): --{old,new,unchanged,changed}--group-format
-       are new options, so that -D is no longer overloaded.  Set
-       no_diff_means_no_output if --unchanged-{line,group}-format allows it.
-       * diff.h (enum line_class): New type.
-       (group_format, line_format): Use it to regularize option flags.
-       All refs changed.
-
-       * ifdef.c (format_ifdef, print_ifdef_lines): %n is no longer a format.
-
-Mon Sep 28 04:51:42 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main, usage): Replace --line-prefix with the more general
-       --{old,new,unchanged}-line-format options.
-       * ifdef.c (format_ifdef, print_ifdef_lines): Likewise.
-       * diff.h (line_format): Renamed from line_prefix.  All refs changed.
-       * diff.h, ifdef.c (default_line_format): New variable.
-       * util.c (output_1_line): New function.
-       (print_1_line): Use it.
-
-       * ifdef.c: (format_ifdef, print_ifdef_lines): Add %0 format.
-
-Sun Sep 27 05:38:13 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main): Add -E or --line-prefix option.  Add -D'=xxx'
-       for common lines.  Change default -D< format from copy of -D>
-       format to to -D<%<; similarly for default -D> format.
-       * diff.h (common_format, line_prefix): New variables.
-       * ifdef.c (format_ifdef): New function.
-       (print_ifdef_script, print_ifdef_hunk, print_ifdef_lines):
-       Use it for -D'=xxx', -E.
-
-       * context.c (find_hunk): Glue together two non-ignorable changes that
-       are exactly CONTEXT * 2 lines apart.  This shortens output, removes
-       a behavioral discontinuity at CONTEXT = 0, and is more compatible
-       with traditional diff.
-
-       * io.c (find_identical_ends): Slurp stdin at most once.
-
-       * util.c (print_line_line): line_flag is const char *.
-
-Thu Sep 24 15:18:07 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * ifdef.c (print_ifdef_lines): New function, which fwrites a sequence
-       of lines all at once for speed.
-       (print_ifdef_script, print_ifdef_hunk): Use it.
-
-Thu Sep 24 05:54:14 1992  Paul Eggert  (eggert@twinsun.com)
-
-       * diff.c (main): Support new -D options for if-then-else formats.
-       (specify_format): New function.
-       * diff.h (ifndef_format, ifdef_format, ifnelse_format): New variables.
-       * ifdef.c (print_ifdef_hunk): Use the new variables instead of
-       a hardwired format.
-
-       * side.c (print_1sdiff_line): Represent incomplete lines on output.
-       (print_sdiff_script): Likewise.  Don't print 'q' at end,
-       since that doesn't work with incomplete lines.
-       * sdiff.c (interact): Don't assume diff output ends with 'q' line.
-       * diff.h (ROBUST_OUTPUT_STYLE): OUTPUT_SDIFF is now robust.
-
-       * sdiff.c (lf_copy, lf_snarf): Use memchr instead of index,
-       to avoid dumping core when files contain null characters.
-       (memchr): New function (if memchr is missing).
-
-       * io.c (sip): New arg SKIP_TEST to skip test for binary file.
-       (read_files): Don't bother testing second file if first is binary.
-
-Thu Sep 17 21:17:49 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * system.h [!USG && !_POSIX_VERSION]: Protect from conflicting
-       prototype for wait in sys/wait.h.
-
-Wed Sep 16 12:32:18 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * Makefile.in: Include binprefix in -DDIFF_PROGRAM.
-
-Tue Sep 15 14:27:25 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * Version 2.0.
-
-Sat Sep 12 01:31:19 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * util.c, diff.h, system.h [!HAVE_MEMCHR]: Don't use void *
-       and const when declaring memchr replacement.  Declare memchr
-       if !STDC_HEADERS && !USG.
-
-Thu Sep 10 15:17:32 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * Makefile.in (uninstall): New target.
-
-       * diff.c (excluded_filename): Use fnmatch, not wildmat.
-       (usage): Document -x, -X, --exclude, --exclude-from.
-       Makefile.in: Use fnmatch.c, not wildmat.c.
-
-Sun Sep  6 23:46:25 1992  Paul Eggert (eggert@twinsun.com)
-
-       * configure.in: Add HAVE_MEMCHR.
-       * diff.h, util.c: Use it instead of MEMCHR_MISSING.
-
-Sun Sep  6 07:25:49 1992  Paul Eggert (eggert@twinsun.com)
-
-       * diff.h: (struct line_def): Replace this 3-word struct with char *.
-       This uses less memory, particularly for large files with short lines.
-       (struct file_data): New member linbuf_base counts number of lines
-       in common prefix that are not recorded in linbuf;
-       this uses less memory if files are identical or differ only at end.
-       New member buffered_lines counts possibly differing lines.
-       New member valid_lines counts valid data.
-       New member alloc_lines - linbuf_base replaces old linbufsize.
-       linbuf[0] now always points at first differing line.
-       Remove unused members ltran, suffix_lines.
-       Add const where appropriate.
-       (Is_space): New macro, for consistent definition of `white space'.
-       (excluded_filename, memchr, sip, slurp): New declarations.
-       * ed.c (print_ed_hunk): Adjust to diff.h's struct changes.
-       * context.c (pr_context_hunk): Likewise.
-       * ifdef.c (print_ifdef_script): Likewise.
-       * side.c (print_sdiff_script, print_half_line): Likewise.
-       * util.c (analyze_hunk, line_cmp, print_1_line): Likewise.
-
-       * analyze.c (shift_boundaries): Remove unneeded variable `end' and
-       unnecessary comparisons of `preceding' and `other_preceding' against 0.
-       (diff_2_files): When comparing files byte-by-byte for equality,
-       don't slurp them all in at once; just compare them a buffer at a time.
-       This can win big if they differ early on.
-       Move some code to compare_files to enable this change.
-       Use only one buffer for stdin with `diff - -'.
-       (discard_confusing_lines, diff_2_files): Coalesce malloc/free calls.
-       (build_script): Remove obsolete OUTPUT_RCS code.
-
-       * diff.c (add_exclude, add_exclude_file, excluded_filename): New fns.
-       (main): Use them for the new --exclude and --exclude-from options.
-       (compare_files): Don't open a file unless it must be read.
-       Treat `diff file file' and `diff file dir' similarly.
-       Move some code here from diff_2_files to enable this.
-       Simplify file vs dir warning.
-
-       * dir.c (dir_sort): Support new --exclude* options.
-
-       * io.c (struct equivclass): Put hash code and line length here instead
-       of struct line_def, so that they can be shared.
-       (find_and_hash_each_line): Compute equivalence class as we go,
-       instead of doing it in a separate pass; this thrashes memory less.
-       Make buckets realloc-able, since we can't preallocate them.
-       Record one more line start than there are lines, so that we can compute
-       any line's length by subtracting its start from the next line's,
-       instead of storing the length explicitly.  This saves memory.
-       Move prefix-handling code to find_identical_ends;
-       this wins with large prefixes.
-       Use Is_space, not is_space, for consistent treatment of white space.
-       (prepare_text_end): New function.
-       (find_identical_ends): Move slurping here, so it's only done when
-       needed.  Work even if the buffers are the same (because of `diff - -').
-       Compare prefixes a word at a time for speed.
-       (find_equiv_class): Delete; now done by find_and_hash_each_line.
-       (read_files): Don't slurp unless needed.
-       find_equiv_class's work is now folded into find_and_hash_each_line.
-       Don't copy stdin buffer if `diff - -'.
-       Check for running out of primes.
-       (sip, slurp): Split first part of `slurp' into another function `sip'.
-       `sip' sets things up and perhaps reads the first ST_BLKSIZE buffer to
-       see whether the file is binary; `slurp' now just finishes the job.
-       This lets diff_2_files compare binary files lazily.
-       Allocate a one-word sentinel to allow word-at-a-time prefix comparison.
-       Count prefix lines only if needed, only count the first file's prefix.
-       Don't bother to count suffix lines; it's never needed.
-       Set up linbuf[0] to point at first differing line.
-       (binary_file_p): Change test for binary files:
-       if it has a null byte in its first buffer, it's binary.
-       (primes): Add more primes.
-
-       * util.c (line_cmp): Use bcmp for speed.
-       Use Is_space, not is_space, for consistent treatment of white space.
-       (translate_line_number): Internal line numbers now count from 0
-       starting after the prefix.
-       (memchr): New function (if memchr is missing).
-
-       * Makefile.in: Document HAVE_ST_BLKSIZE.  Link with wildmat.o.
-       * system.h (STAT_BLOCKSIZE): New macro based on HAVE_ST_BLKSIZE.
-       * configure.in: Add AC_ST_BLKSIZE.
-       * wildmat.c: New file.
-
-Fri Sep  4 01:28:51 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * sdiff.c (xmalloc): Renamed from ck_malloc.  Callers changed.
-
-Thu Sep  3 15:28:59 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * diff.h: Don't declare free, index, rindex.
-
-Tue Aug 11 22:18:06 1992  John Gilmore  (gnu at cygnus.com)
-
-       * io.c (binary_file_p):  Use heuristic to avoid declaring info
-       files as binary files.  Allow about 1.5% non-printing
-       characters (in info's case, ^_).
-
-Tue Jul  7 01:09:26 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * diff.h: Replace function_regexp and ignore_regexp with lists
-       of compiled regexps.
-       * analyze.c, context.c, util.c: Test whether the lists, not
-       the old variables, are empty.
-       * util.c (analyze_hunk), context.c (find_function): Compare
-       lines with the lists of regexps.
-       * diff.c (add_regexp): New function.
-       (main): Use it.
-
-       * diff3: Add -v --version option.
-       * Makefile.in: Link with version.o.
-
-       * system.h: New file.
-       * diff.h, cmp.c, diff3.c, sdiff.c: Use it.
-
-       * diff.h, diff3.c: Include string.h or strings.h, as appropriate.
-       Declare malloc and realloc.
-
-       * diff3.c (perror_with_exit): Include program name in message.
-
-       * diff3.c: Lowercase error messages for GNU standards.
-
-       * sdiff.c [USG || STDC_HEADERS]: Define bcopy in terms of memcpy.
-
-       * sdiff.c: Use the version number from version.c.
-       * Makefile.in: Link with version.o.
-
-       * cmp.c error.c xmalloc.c: New files from textutils.
-       * Makefile.in: Add rules for them.
-
-       * diff.c (longopts): --unidirectional-new-file is like -P, not -N.
-       Rename --file-label to --label (leave old name, but undocumented).
-
-       * sdiff.c, diff.c (usage): Condense messages and fix some errors.
-
-       * diff3.c (main, usage): Add long-named options.
-
-Fri Jul  3 14:31:18 1992  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
-
-       * diff.h, diff3.c, sdiff.c: Change FOO_MISSING macros to HAVE_FOO.
-
-Thu Jun 25 16:59:47 1992  David J. MacKenzie  (djm@apple-gunkies.gnu.ai.mit.edu)
-
-       * diff.c: --reversed-ed -> --forward-ed.
-
-Wed Feb 26 12:17:32 1992  Paul Eggert  (eggert@yata.uucp)
-
-       * analyze.c, diff.c, diff.h, io.c: For -y, compare even if same file.
-
-Fri Feb 14 22:46:38 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * io.c, diff3.c, analyze.c: Add extra parentheses.
-
-Sun Feb  9 00:22:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
-
-       * diff.h (unidirectional_new_file_flag): New variable.
-       * diff.c (main): Set that for -P.
-       (compare_files): Support -P, somewhat like -N.
-       (longopts): Support long name for -P.
-
-Sat Jan  4 20:10:34 1992  Paul Eggert (eggert at yata.uucp)
-
-       * Makefile.in: Distribute diff.info-* too.
-
-       * README, sdiff.c: version number now matches version.c.
-
-       * configure: Fix and document vfork test.
-
-       * ifdef.c: Don't dump core if `diff -Dx f f'.
-
-Mon Dec 23 23:36:08 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
-
-       * diff.h, diff3.c, sdiff.c: Change POSIX ifdefs to
-       HAVE_UNISTD_H and _POSIX_VERSION.
-
-Wed Dec 18 17:00:31 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
-
-       * Makefile.in (srcs): Add sdiff.c.
-       (tapefiles): Add diff.texi and diff.info.
-
-       * diff.h, diff3.c, sdiff.c: Use HAVE_VFORK_H instead of
-       VFORK_HEADER and VFORK_WORKS.
-
-Tue Dec 17 00:02:59 1991  Paul Eggert  (eggert at yata.uucp)
-
-       * Makefile.in (all): Add diff.info, sdiff.
-
-       * configure, diff.c, sdiff.c:
-       Prefix long options with `--', not `+'.
-       * diff.c: Regularize option names.
-
-       * configure: Fix check for vfork.
-       * configure, diff.c, diff.h, diff3.c, sdiff.c:
-       Use Posix definitions when possible.
-
-       * context.c: Align context with tab if -T is given.  Tune.
-       * diff.c, diff.h, side.c: Calculate column widths so that tabs line up.
-       * io.c: Add distinction between white space and printing chars.
-       * side.c: Don't expand tabs unless -t is given.
-       * side.c, util.c: Tab expansion now knows about '\b', '\f', '\r', '\v'.
-       * util.c: -w skips all white space.  Remove lint.  Tune.
-
-       * sdiff.c: Support many more diff options, e.g. `-', `sdiff file dir'.
-       Ignore interrupts while the subsidiary editor is in control.
-       Clean up temporary file and kill subsidiary diff if interrupted.
-       Ensure subsidiary diff doesn't ignore SIGPIPE.
-       Don't get confused while waiting for two subprocesses.
-       Don't let buffers overflow.  Check for I/O errors.
-       Convert to GNU style.  Tune.
-
-       * sdiff.c, util.c: Don't lose errno.
-       Don't confuse sdiff with messages like `Binary files differ'.
-       * sdiff.c, side.c: Don't assume that common lines are identical.
-       Simplify --sdiff-merge-assist format.
-
-Mon Sep 16 16:42:01 1991  Tom Lord  (lord at churchy.gnu.ai.mit.edu)
-
-       * Makefile.in, sdiff.c: introduced sdiff front end to diff.
-
-       * Makefile.in, analyze.c, diff.c, diff.h, io.c, side.c: Added
-       sdiff-style output format to diff.
-
-Mon Aug 26 16:44:55 1991  David J. MacKenzie  (djm at pogo.gnu.ai.mit.edu)
-
-       * Makefile.in, configure: Only put $< in Makefile if using VPATH,
-       because older makes don't understand it.
-
-Fri Aug  2 12:22:30 1991  David J. MacKenzie  (djm at apple-gunkies)
-
-       * configure: Create config.status.  Remove it and Makefile if
-       interrupted while creating them.
-
-Thu Aug  1 22:24:31 1991  David J. MacKenzie  (djm at apple-gunkies)
-
-       * configure: Check for +srcdir etc. arg and look for
-       Makefile.in in that directory.  Set VPATH if srcdir is not `.'.
-       * Makefile.in: Get rid of $(archpfx).
-
-Tue Jul 30 21:28:44 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * Makefile.in (prefix): Renamed from DESTDIR.
-
-Wed Jul 24 23:08:56 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
-
-       * diff.h, diff3.c: Rearrange ifdefs to use POSIX,
-       STDC_HEADERS, VFORK_MISSING, DIRENT.  This way it works on
-       more systems that aren't pure USG or BSD.
-       Don't not define const if __GNUC__ is defined -- that would
-       break with -traditional.
-       * configure: Check for those features.
-
-Wed Jul 10 01:39:23 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
-
-       * configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL).
-
-Sat Jul  6 16:39:04 1991  David J. MacKenzie  (djm at geech.gnu.ai.mit.edu)
-
-       * Replace Makefile with configure and Makefile.in.
-       Update README with current compilation instructions.
-
-Sat Jul  6 14:03:29 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * util.c (setup_output): Just save the args for later use.
-       (begin_output): Do the real work, with the values that were saved.
-       It's safe to call begin_output more than once.
-       Print the special headers for context format here.
-       * analyze.c (diff_2_files): Don't print special headers here.
-       * context.c (pr_context_hunk, pr_unidiff_hunk): Call begin_output.
-       * ed.c (print_ed_hunk, print_forward_ed_hunk, print_rcs_hunk):
-       * normal.c (print_normal_hunk): Likewise.
-       * ifdef.c (print_ifdef_hunk): Likewise.
-       * util.c (finish_output): Don't die if begin_output was not called.
-
-Thu Jun 20 23:10:01 1991  David J. MacKenzie  (djm at geech.gnu.ai.mit.edu)
-
-       * Makefile: Add TAGS, distclean, and realclean targets.
-       Set SHELL.
-
-Tue Apr 30 13:54:36 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
-
-       * diff.h (TRUE, FALSE): Undefine these before defining.
-
-Thu Mar 14 18:27:27 1991  Richard Stallman  (rms@mole.ai.mit.edu)
-
-       * Makefile (objs): Include $(ALLOCA).
-
-Sat Mar  9 22:34:03 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.h: Include regex.h.
-
-Thu Feb 28 18:59:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * Makefile (diff3): Link with GNU getopt.
-
-Sat Feb 23 12:49:43 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * io.c (find_equiv_class): Make hash code unsigned before mod.
-
-       * diff.h (files): Add EXTERN.
-
-Sun Jan 13 21:33:01 1991  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.c: +print option renamed +paginate.  Remove +all-text.
-
-Mon Jan  7 06:18:01 1991  David J. MacKenzie  (djm at geech.ai.mit.edu)
-
-       * Makefile (dist): New target, replacing diff.tar and
-       diff.tar.Z, to encode version number in distribution directory
-       and tar file names.
-
-Sun Jan  6 18:42:23 1991  Michael I Bushnell  (mib at geech.ai.mit.edu)
-
-       * Version 1.15 released.
-
-       * version.c: Updated from 1.15 alpha to 1.15
-
-       * context.c (print_context_number_range,
-       print_unidiff_number_range): Don't print N,M when N=M, print
-       just N instead.
-
-       * README: Updated for version 1.15.
-       Makefile: Updated for version 1.15.
-
-       * diff3.c (main): Don't get confused if one of the arguments
-       is a directory.
-
-       * diff.c (compare_files): Don't get confused if comparing
-       standard input to a directory; print error instead.
-
-       * analyze.c (diff_2_files), context.c (print_context_header,
-       print_context_script), diff.c (main), diff.h (enum
-       output_style): Tread unidiff as an output style in its own
-       right.  This also generates an error when both -u and -c are
-       given.
-
-       * diff.c (main): Better error messages when regexps are bad.
-
-       * diff.c (compare_files): Don't assume stdin is opened.
-
-       * diff3.c (read_diff): Don't assume things about the order of
-       descriptor assignment and closes.
-
-       * util.c (setup_output): Don't assume things about the order
-       of descriptor assignment and closes.
-
-       * diff.c (compare_files): Set a flag so that closes don't
-       happen more than once.
-
-       * diff.c (main): Don't just flush stdout, do a close.  That
-       way on broken systems we can still get errors.
-
-Mon Dec 24 16:24:17 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.c (usage): Use = for args of long options.
-
-Mon Dec 17 18:19:20 1990  Michael I Bushnell  (mib at geech.ai.mit.edu)
-
-       * context.c (print_context_label): Labels were interchanged badly.
-
-       * context.c (pr_unidiff_hunk): Changes to deal with files
-       ending in incomplete lines.
-       * util.c (print_1_line): Other half of the changes.
-
-Mon Dec  3 14:23:55 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.c (longopts, usage): unidiff => unified.
-
-Wed Nov  7 17:13:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * analyze.c (diff_2_files): No warnings about newlines for -D.
-
-       * diff.c (pr_unidiff_hunk): Remove ref to output_patch_flag.
-
-Tue Oct 23 23:19:18 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.c (compare_files): For -D, compare even args are same file.
-       * analyze.c (diff_2_files): Likewise.
-       Also, output even if files have no differences.
-
-       * analyze.c (diff_2_files): Print missing newline messages last.
-       Return 2 if a newline is missing.
-       Print them even if files end with identical text.
-
-Mon Oct 22 19:40:09 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.c (usage): Return 2.
-
-Wed Oct 10 20:54:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.c (longopts): Add +new-files.
-
-Sun Sep 23 22:49:29 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * context.c (print_context_script): Handle unidiff_flag.
-       (print_context_header): Likewise.
-       (print_unidiff_number_range, pr_unidiff_hunk): New functions.
-       * diff.c (longopts): Add element for +unidiff.
-       (main): Handle +unidiff and -u.
-       (usage): Mention them.
-
-Wed Sep  5 16:33:22 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * io.c (find_and_hash_each_line): Deal with missing final newline
-       after buffering necessary context lines.
-
-Sat Sep  1 16:32:32 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * io.c (find_identical_ends): ROBUST_OUTPUT_FORMAT test was backward.
-
-Thu Aug 23 17:17:20 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff3.c (WIFEXITED): Undef it if WEXITSTATUS is not defined.
-       * context.c (find_function): Don't try to return values.
-
-Wed Aug 22 11:54:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * diff.h (O_RDONLY): Define if not defined.
-
-Tue Aug 21 13:49:26 1990  Richard Stallman  (rms at mole.ai.mit.edu)
-
-       * Handle -L option.
-       * context.c (print_context_label): New function.
-       (print_context_header): Use that.
-       * diff.c (main): Recognize the option.
-       (usage): Updated.
-       * diff.h (file_label): New variable.
-       * diff3.c (main): Recognize -L instead of -t.
-
-       * diff3.c (main): Support -m without other option.
-
-       * diff3.c (WEXITSTATUS, WIFEXITED): Define whenever not defined.
-
-       * diff3.c (bcopy, index, rindex): Delete definitions; not used.
-       (D_LINENUM, D_LINELEN): Likewise.
-       (struct diff_block): lengths includes newlines.
-       (struct diff3_block): Likewise.
-       (always_text, merge): New variables.
-       (read_diff): Return address of end, not size read.  Calls changed.
-       Pass -a to diff if given to diff3.
-       current_chunk_size now an int.  Detect error in `pipe'.
-       Check for incomplete line of output here.
-       (scan_diff_line): Don't make scan_ptr + 2 before knowing it is valid.
-       No need to check validity of diff output here.
-       Include newline in length of line.
-       (main): Compute rev_mapping here.  Handle -a and -m.
-       Error message if excess -t operands.  Error for incompatible options.
-       Error if `-' given more than once.
-       Fix error storing in tag_strings.
-       (output_diff3): REV_MAPPING is now an arg.  Call changed.
-       Change syntax of "missing newline" message.
-       Expect length of line to include newline.
-       (output_diff3_edscript): Return just 0 or 1.
-       REV_MAPPING is now an arg.  Call changed.
-       (output_diff3_merge): New function.
-       (process_diff): Better error message for bad diff format.
-       (fatal, perror_with_exit): Return status 2.
-
-       * analyze.c (diff_2_files): Report missing newline in either
-       or both files, if not robust output style.
-
-       * util.c (setup_output): Detect error from pipe.
-       No need to close stdin.
-
-       * util.c (print_1_line): Change format of missing-newline msg.
-       Change if statements to switch.
-
-       * io.c (slurp): Don't mention differences in final newline if -B.
-
-       * io.c (binary_file_p): Use ISO char set as criterion, not ASCII.
-
-       * io.c (find_identical_ends): Increase value of BEG0 by 1.
-       Other changes in backwards scan to avoid decrementing pointers
-       before start of array, and set LINES properly.
-
-       * diff.h (ROBUST_OUTPUT_STYLE): New macro.
-       * io.c (find_identical_ends, find_and_hash_each_line): Use that macro.
-
-       * diff.h (dup2): Don't define if XENIX.
-
-       * diff.c (main): Check for write error at end.
-
-       * context.c (find_function): Don't return a value.
-       Use argument FILE rather than global files.
-
-       * analyze.c: Add external function declarations.
-       * analyze.c (build_script): Turn off explicit check for final newline.
-
-       * analyze.c (discard_confusing_lines): Make integers unsigned.
-
-Tue Jul 31 21:37:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * io.c (find_and_hash_each_line): Correct the criterion
-       for leaving out the newline from the end of the line.
-
-Tue May 29 21:28:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * dir.c (diff_dirs): Free things only if nonzero.
-
-Mon Apr 16 18:31:05 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.h (NDIR_IN_SYS): New macro controls location of ndir.h.
-
-       * diff3.c (xmalloc, xrealloc): Don't die if size == 0 returns 0.
-
-Sun Mar 25 15:58:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * analyze.c (discard_confusing_lines):
-       `many' wasn't being used; use it.
-       Canceling provisionals near start of run must handle already
-       canceled provisionals.
-       Canceling subruns of provisionals was canceling last nonprovisional.
-
-Sat Mar 24 14:02:51 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * analyze.c (discard_confusing_lines):
-       Threshold for line occurring many times scales by square root
-       of total lines.
-       Within each run, cancel any long subrun of provisionals.
-       Don't update `provisional' while canceling provisionals.
-       In big outer loop, handle provisional and nonprovisional separately.
-
-Thu Mar 22 16:35:33 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * analyze.c (discard_confusing_lines):
-       The first loops to discard provisionals from ends failed to step.
-       In second such loops, keep discarding all consecutive provisionals.
-       Increase threshold for stopping discarding, and also check for
-       consecutive nondiscardables as separate threshold.
-
-Fri Mar 16 00:33:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c (read_diff): Pass -- as first arg to diff.
-
-       * diff3.c: Include wait.h or define equivalent macros.
-       (read_diff): Don't use stdio printing error in the inferior.
-       Remember the pid and wait for it.  Report failing status.
-       Report failure of vfork.
-
-Sun Mar 11 17:10:32 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c (main): Accept -t options and pass to output_diff3_edscript.
-       (usage): Mention -t.
-       (read_diff): Use vfork.
-       (vfork): Don't use it on Sparc.
-
-       * diff.h (vfork): Don't use it on Sparc.
-
-Tue Mar  6 22:37:20 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c (dup2): Don't define on Xenix.
-
-       * Makefile: Comments for Xenix.
-
-Thu Mar  1 17:19:23 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * analyze.c (diff_2_files): `message' requires three args.
-
-Fri Feb 23 10:56:50 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
-
-       * diff.h, util.c, diff3.c: Change 'void *' to 'VOID *', with
-       VOID defined as void if __STDC__, char if not.
-
-Sun Feb 18 20:31:58 1990  David J. MacKenzie  (djm at albert.ai.mit.edu)
-
-       * Makefile: Add rules for getopt.c, getopt1.c, getopt.h.
-
-       * getopt.c, getopt.h, getopt1.c: New files.
-
-       * main.c (main, usage): Add long options.
-
-       * analyze.c (shift_boundaries): Remove unused var 'j_end'.
-
-Thu Feb  8 02:43:16 1990  Jim Kingdon  (kingdon at pogo.ai.mit.edu)
-
-       * GNUmakefile: include ../Makerules before Makefile.
-
-Fri Feb  2 23:21:38 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * analyze.c (diff_2_files): If -B or -I, don't return 1
-       if all changes were ignored.
-
-Wed Jan 24 20:43:57 1990  Richard Stallman  (rms at albert.ai.mit.edu)
-
-       * diff3.c (fatal): Output to stderr.
-
-Thu Jan 11 00:25:56 1990  David J. MacKenzie  (djm at hobbes.ai.mit.edu)
-
-       * diff.c (usage): Mention -v.
-
-Wed Jan 10 16:06:38 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c (output_diff3_edscript): Return number of overlaps.
-       (main): If have overlaps, exit with status 1.
-
-Sun Dec 24 10:29:20 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * io.c (find_equiv_class): Fix typo that came from changing init of B
-       to an assignment.
-
-       * version.c: New file.
-       * diff.c (main): -v prints version number.
-
-       * io.c (binary_file_p): Null char implies binary file.
-
-Fri Nov 17 23:44:55 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * util.c (print_1_line): Fix off by 1 error.
-
-Thu Nov 16 13:51:10 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * util.c (xcalloc): Function deleted.
-
-       * io.c (slurp): Null-terminate the buffer.
-
-       * io.c (read_files): Delete unused vars.
-
-       * io.c (find_equiv_class): Don't index by N if too low.
-
-       * dir.c (dir_sort): Delete the extra declaration of compare_names.
-
-       * diff.h: Don't declare xcalloc.  Declare some other functions.
-
-       * analyze.c (shift_boundaries):
-       Test for END at end of range before indexing by it.
-       Fix misspelling of `preceding' in var names.
-
-Sat Nov 11 14:04:16 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c (using_to_diff3_block): Delete unused vars.
-       (make_3way_diff, process_diff_control, read_diff, output_diff3): Likewise.
-
-Mon Nov  6 18:15:50 EST 1989 Jay Fenlason (hack@ai.mit.edu)
-
-       * README Fix typo.
-
-Fri Nov  3 15:27:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (usage): Mention -D.
-
-       * ifdef.c (print_ifdef_hunk): Write comments on #else and #endif.
-
-Sun Oct 29 16:41:07 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (compare_files): Don't fflush for identical files.
-
-Wed Oct 25 17:57:12 1989  Randy Smith  (randy at apple-gunkies.ai.mit.edu)
-
-       * diff3.c (using_to_diff3_block): When defaulting lines from
-       FILE0, only copy up to just under the *lowest* line mentioned
-       in the next diff.
-
-       * diff3.c (fatal): Add \n to error messages.
-
-Wed Oct 25 15:05:49 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * Makefile (tapefiles): Add ChangeLog.
-
-Tue Oct  3 00:51:17 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c (process_diff, create_diff3_block): Init ->next field.
-
-Fri Sep 29 08:16:45 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * util.c (line_cmp): Alter end char of line 2, not line 1.
-
-Wed Sep 20 00:12:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * Makefile (diff.tar): Expect ln to fail on some files;
-       copy them with cp.
-
-Mon Sep 18 02:54:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * Handle -D option:
-       * io.c (find_and_hash_each_line): Keep all lines of 1st file.
-       * diff.c (main): Handle -D option.
-       (compare_files): Reject -D if files spec'd are directories.
-       * analyze.c (diff_2_files): Handle OUTPUT_IFDEF case.
-
-Fri Sep  1 20:15:50 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (option_list): Rename arg VECTOR as OPTIONVEC.
-
-Mon Aug 28 17:58:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (compare_files): Clear entire inf[i].stat.
-
-Wed Aug 23 17:48:47 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
-
-       * io.c (find_identical_ends): Sign was backward
-       determining where to bound the scan for the suffix.
-
-Wed Aug 16 12:49:16 1989  Richard Stallman  (rms at hobbes.ai.mit.edu)
-
-       * analyze.c (diff_2_files): If -q, treat all files as binary.
-       * diff.c (main): Detect -q, record in no_details_flag.
-
-Sun Jul 30 23:12:00 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (usage): New function.
-       (main): Call it.
-
-Wed Jul 26 02:02:19 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (main): Make -C imply -c.
-
-Thu Jul 20 17:57:51 1989  Chris Hanson  (cph at kleph)
-
-       * io.c (find_and_hash_each_line): Bug fix in context handling,
-       introduced by last change.
-
-Fri Jul 14 17:39:20 1989  Chris Hanson  (cph at kleph)
-
-       * analyze.c: To make RCS work correctly on files that don't
-       necessarily end in newline, introduce some changes that cause
-       diffs to be sensitive to missing final newline.  Because
-       non-RCS modes don't want to be affected by these changes, they
-       are conditional on `output_style == OUTPUT_RCS'.
-       (diff_2_files) [OUTPUT_RCS]: Suppress the "File X missing
-       newline" message.
-       (build_script) [OUTPUT_RCS]: Cause the last line to compare as
-       different if exactly one of the files is missing its final
-       newline.
-
-       * io.c (find_and_hash_each_line): Bug fix in
-       ignore_space_change mode.  Change line's length to include the
-       newline.  For OUTPUT_RCS, decrement last line's length if
-       there is no final newline.
-       (find_identical_ends) [OUTPUT_RCS]: If one of the files is
-       missing a final newline, make sure it's not included in either
-       the prefix or suffix.
-
-       * util.c (print_1_line): Change line output routine to account
-       for line length including the newline.
-
-Tue Jun 27 02:35:28 1989  Roland McGrath  (roland at hobbes.ai.mit.edu)
-
-       * Makefile: Inserted $(archpfx) where appropriate.
-
-Wed May 17 20:18:43 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff3.c [USG]: Include fcntl.h.
-
-       * diff.h [USG]: New compilation flags HAVE_NDIR, HAVE_DIRECT.
-
-Wed Apr 26 15:35:57 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * dir.c (diff_dirs): Two new args, NONEX1 and NONEX2, say to pretend
-       nonex dirs are empty.
-       (dir_sort): New arg NONEX, likewise.
-       * diff.c (compare_files): Pass those args.
-       Sometimes call diff_dirs if subdir exists in just one place.
-
-Wed Apr 12 01:10:27 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * io.c (find_identical_ends): Set END0 *after* last char
-       during backward scan for suffix.
-
-Sat Apr  8 15:49:49 1989  Randall Smith  (randy at apple-gunkies.ai.mit.edu)
-
-       * diff3.c (using_to_diff3_block): Now find high marks in files 1
-       and 2 through mapping off of the last difference instead of the
-       first.
-
-       * diff3.c: Many trivial changes to spelling inside comments.
-
-Fri Feb 24 12:38:03 1989  Randall Smith  (randy at gluteus.ai.mit.edu)
-
-       * util.c, normal.c, io.c, ed.c, dir.c, diff.h, diff.c, context.c,
-       analyze.c, Makefile: Changed copyright header to conform with new
-       GNU General Public license.
-       * diff3.c: Changed copyright header to conform with new GNU
-       General Public license.
-       * COPYING: Made a hard link to /gp/rms/COPYING.
-
-Fri Feb 24 10:01:58 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * io.c (slurp): Leave 2 chars space at end of buffer, not one.
-       (find_identical_ends): Special case if either file is empty;
-       don't try to make a sentinel since could crash.
-
-Wed Feb 15 14:24:48 1989  Jay Fenlason  (hack at apple-gunkies.ai.mit.edu)
-
-       * diff3.c (message)  Re-wrote routine to avoid using alloca()
-
-Wed Feb 15 06:19:14 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * io.c (find_identical_ends): Delete the variable `bytes'.
-
-Sun Feb 12 11:50:36 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * io.c (slurp): ->bufsize is nominal amount we have room for;
-       add room for sentinel when calling xmalloc or xrealloc.
-
-       * io.c (find_identical_ends): Do need overrun check in finding suffix.
-
-Fri Feb 10 01:28:15 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.c (main): -C now takes arg to specify context length.
-       Now -p to show C function name--Damned IEEE!
-       Fatal error if context length spec'd twice.
-
-       * ed.c (print_ed_hunk): Now special treatment only for lines containing
-       precisely a dot and nothing else.  Output `..', end the insert,
-       substitute that one line, then resume the insert if nec.
-
-       * io.c (find_and_hash_lines): When backing up over starting context,
-       don't move past buffer-beg.
-
-       * io.c (find_identical_ends): Use sentinels to make the loops faster.
-       If files are identical, skip the 2nd loop and return quickly.
-       (slurp): Leave 1 char extra space after each buffer.
-
-       * analyze.c (diff_2_files): Mention difference in final newlines.
-
-Wed Jan 25 22:44:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * dir.c (diff_dirs): Use * when calling fcn ptr variable.
-
-Sat Dec 17 14:12:06 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * Makefile: New vars INSTALL and LIBS used in some rules;
-       provide default defns plus commented-put defns for sysV.
-
-Thu Nov 17 16:42:53 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * dir.c (dir_sort): Open-trouble not fatal; just say # files is -1.
-       (diff_dirs): If dir_sort does that, give up and return 2.
-
-       * diff.c (compare_files): Don't open directories.
-       Don't close them specially either.
-       Cross-propagate inf[i].dir_p sooner.
-
-Sun Nov 13 11:19:36 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
-
-       * diff.h: Declare index, rindex.
-
-       * diff.c (compare_files): If comparing foodir with b/f,
-       use foodir/f, not foodir/b/f.
-
-       * diff.c (compare_files): Don't print "are identical" msg for 2 dirs.
-       Status now 1 if one file is a dir and the other isn't, etc.
-
-Thu Nov  3 16:30:24 1988  Randall Smith  (randy at gluteus.ai.mit.edu)
-
-       * Makefile: Added a define for diff3 to define DIFF_PROGRAM.
-
-       * util.c: Added hack to make sure that perror was not called with
-       a null pointer.
-
-       * diff.c: Changed S_IFDIR to S_IFMT in masking type of file bits
-       out.
-
-       * diff3.c: Included USG compatibility defines.
-
-       * diff.h: Moved sys/file.h into #else USG section (not needed or
-       wanted on System V).
-
-       * ed.c, analyze.c, context.c: Shortened names to 12 characters for
-       the sake of System V (too simple not to do).
-
-
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, 1998, 1999,
-2000, 2001, 2002 Free Software Foundation, Inc.
-
-This file is part of GNU Diffutils.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-This program is distributed in the hope that they will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
diff --git a/contrib/diffutils-2.8.1/DRAGONFLY-upgrade b/contrib/diffutils-2.8.1/DRAGONFLY-upgrade
deleted file mode 100644 (file)
index b300535..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-$DragonFly: src/contrib/diffutils-2.8.1/Attic/DRAGONFLY-upgrade,v 1.1.1.1 2004/04/13 14:17:23 eirikn Exp $
-
-Original source available at
-ftp://ftp.gnu.org/gnu/diffutils/diffutils-2.8.1.tar.gz
-
-The following files and directories were removed for this import:
-INSTALL
-config/
-m4/
-ms/
-po/
-src/Makefile.in
-lib/posix/Makefile.in
-lib/Makefile.in
-doc/Makefile.in
-man/Makefile.in
-Makefile.in
-aclocal.m4
-config.hin
-configure
-configure.ac
-
-Imported with command:
- cvs import -m "Import of diffutils 2.8.1" src/contrib/diffutils-2.8.1 \
-     FSF DIFFUTILS_2_8_1
-
- - Eirik Nygaard <eirikn@kerneled.com>
diff --git a/contrib/diffutils-2.8.1/INSTALLME b/contrib/diffutils-2.8.1/INSTALLME
deleted file mode 100644 (file)
index eab4119..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-Installation instructions specific to GNU Diffutils
-
-       Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-
-       This file is part of GNU Diffutils.
-
-       This program is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 2, or (at your option)
-       any later version.
-
-       This program is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with this program; see the file COPYING.  If not, write to
-       the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-       Boston, MA 02111-1307, USA.
-
-
-Please send comments and problem reports to <bug-gnu-utils@gnu.org>.
-
-If you have a problem with internationalization, you might be able to
-work around it as described in ABOUT-NLS by invoking `./configure
---disable-nls'.  Many of the problems arise from dynamic linking
-issues on non-GNU platforms (e.g. with the iconv library).  Such
-problems tend to be shared by other GNU applications on these
-platforms, and can usually be fixed by carefully tweaking your non-GNU
-installation.  If you have an older version of libiconv, please
-upgrade to the latest one, preferably libiconv-1.8 or newer.
-(libiconv-1.8 is not yet available as of this writing, but it should
-be out soon.)  If the problem seems isolated to diffutils, though,
-please report a bug.
-
-This program requires a Standard C compiler (C89 or later); if you
-have an older K&R compiler, please install GCC first.
-
-If you make changes to the source code, you may need recent test
-versions of GNU build tools to regenerate the intermediate files.  The
-following versions were used to generate the intermediate files in
-this distribution:
-
-* GNU Autoconf 2.53 <ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.53.tar.gz>
-
-* GNU Automake 1.6 <ftp://ftp.gnu.org/gnu/automake/automake-1.6.tar.gz>
-
-* GNU gettext 0.11.1 <ftp://ftp.gnu.org/gnu/gettext/gettext-0.11.1.tar.gz>
-
-* GNU help2man 1.27 <ftp://ftp.gnu.org/gnu/help2man/help2man-1.27.tar.gz>
-
-* GNU texinfo 4.2 <ftp://ftp.gnu.org/gnu/texinfo/texinfo-4.2.tar.gz>
diff --git a/contrib/diffutils-2.8.1/Makefile.am b/contrib/diffutils-2.8.1/Makefile.am
deleted file mode 100644 (file)
index a579b1d..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# Main Automakefile for GNU diffutils.
-
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-## 02111-1307, USA.
-
-EXTRA_DIST = config/config.rpath exgettext INSTALLME
-SUBDIRS = doc lib m4 ms src man po
-
-ACLOCAL_AMFLAGS = -I m4
diff --git a/contrib/diffutils-2.8.1/NEWS b/contrib/diffutils-2.8.1/NEWS
deleted file mode 100644 (file)
index 348ac82..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-User-visible changes in version 2.8.1:
-
-* Documentation fixes.
-
-User-visible changes in version 2.8:
-
-* cmp and diff now conform to POSIX 1003.1-2001 (IEEE Std 1003.1-2001)
-  if the underlying system conforms to POSIX and if the _POSIX2_VERSION
-  environment variable is set to 200112.  Conformance removes support
-  for `diff -NUM', where NUM is a number.  Use -C NUM or -U NUM instead.
-* cmp now supports trailing operands SKIP1 and SKIP2, like BSD cmp.
-* cmp -i or --ignore-initial now accepts SKIP1:SKIP2 option value.
-* New cmp option: -n or --bytes.
-* cmp's old -c or --print-chars option has been renamed;
-  use -b or --print-bytes instead.
-* cmp now outputs "byte" rather than "char" outside the POSIX locale.
-* cmp -l's index column width now adjusts to fit larger (or smaller) files.
-* cmp -l -s and cmp -s -l are not allowed.  Use cmp -s or cmp -l instead.
-* diff uses ISO 8601 style time stamps for output times (e.g. "2001-11-23
-  16:44:36.875702460 -0800") unless in the C or POSIX locale and the
-  -c style is specified.
-* diff's -I and -F options use the regexp syntax of grep, not of Emacs.
-* diff now accepts multiple context arguments, and uses their maximum value.
-* New diff and sdiff options:
-  -E  --ignore-tab-expansion
-  --strip-trailing-cr
-* New diff options:
-  --from-file=FILE, --to-file=FILE
-  --ignore-file-name-case
-  --no-ignore-file-name-case
-* New diff3 and sdiff option:
-  --diff-program=PROGRAM
-* The following diff options are still accepted, but are no longer documented.
-  They may be withdrawn in future releases.
-  -h (omit; it has no effect)
-  -H (use --speed-large-files instead)
-  -L (use --label instead)
-  -P (use --unidirectional-new-file instead)
-  --inhibit-hunk-merge (omit; it has no effect)
-* Recursive diffs now sort file names according to the LC_COLLATE locale
-  category if possible, instead of using native byte comparison.
-* Diff printf specs can now use the "0" and "'" flags.
-* The new sdiff interactive command `ed' precedes each version with a header.
-* On 64-bit hosts, files larger than 2 GB can be compared.
-* Some internationalization support has been added, but multibyte locales
-  are still not completely supported yet.
-* Some diagnostics have been reworded slightly for consistency.
-  Also, `diff -D FOO' now outputs `/* ! FOO */' instead of `/* not FOO */'.
-* The `patch' part of the manual now describes `patch' version 2.5.4.
-* Man pages are now distributed and installed.
-* There is support for DJGPP; see the 'ms' subdirectory and the files
-  m4/dos.m4 and */setmode.*.
-
-
-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 1003.2-1992 (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.
-
-\f
-
-Copyright (C) 1993, 1994, 1998, 2001, 2002 Free Software Foundation,
-Inc.
-
-This file is part of GNU Diffutils.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-This program is distributed in the hope that they will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
diff --git a/contrib/diffutils-2.8.1/README b/contrib/diffutils-2.8.1/README
deleted file mode 100644 (file)
index 275a8cf..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-README for GNU DIFF
-
-       Copyright (C) 1992, 1998, 2001, 2002 Free Software Foundation, Inc.
-
-       This file is part of GNU Diffutils.
-
-       This program is free software; you can redistribute it and/or modify
-       it under the terms of the GNU General Public License as published by
-       the Free Software Foundation; either version 2, or (at your option)
-       any later version.
-
-       This program is distributed in the hope that it will be useful,
-       but WITHOUT ANY WARRANTY; without even the implied warranty of
-       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-       GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with this program; see the file COPYING.  If not, write to
-       the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-       Boston, MA 02111-1307, USA.
-
-
-This directory contains the GNU diff, diff3, sdiff, and cmp utilities.
-Their features are a superset of the Unix features and they are
-significantly faster.
-
-Please see the file COPYING for copying conditions.
-
-Please see the file doc/diff.texi (or doc/diff.info) for documentation
-that can be printed with TeX, or read with the `info' program or with
-Emacs's `M-x info'.  There are no man pages.
-
-See the file INSTALL for generic compilation and installation instructions,
-and the file INSTALLME for instructions specific to GNU diff.
-
-See the file ABOUT-NLS for notes about translations.
-
-Please report bugs to <bug-gnu-utils@gnu.org>.
diff --git a/contrib/diffutils-2.8.1/THANKS b/contrib/diffutils-2.8.1/THANKS
deleted file mode 100644 (file)
index 4fc388c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-Thanks to all the following for their contributions to GNU diffutils:
-
-Thomas Bushnell  <tb@becket.net>
-Wayne Davison  <wayned@users.sourceforge.net>
-Ulrich Drepper  <drepper@redhat.com>
-Paul Eggert  <eggert@twinsun.com>
-Jay Fenlason <hack@gnu.org>
-John Gilmore  <gnu@cygnus.com>
-Torbjorn Granlund  <tege@swox.com>
-Mike Haertel  <mike@ichips.intel.com>
-Bruno Haible  <haible@ilog.fr>
-Chris Hanson <cph@gnu.org>
-Jim Kingdon  <kingdon@panix.com>
-Tom Lord  <lord@gnu.org>
-David J. MacKenzie  <djm@gnu.org>
-Roland McGrath  <roland@gnu.org>
-Jim Meyering  <meyering@lucent.com>
-Eugene W. Myers  <gene@cs.arizona.edu>
-Randy Smith  <randy@gnu.org>
-Richard Stallman  <rms@gnu.org>
-Leonard H. Tower Jr.  <tower@ai.mit.edu>
-Eli Zaretskii  <eliz@is.elta.co.il>
diff --git a/contrib/diffutils-2.8.1/config.h b/contrib/diffutils-2.8.1/config.h
deleted file mode 100644 (file)
index f5f68f8..0000000
+++ /dev/null
@@ -1,515 +0,0 @@
-/* config.h.  Generated by configure.  */
-/* config.hin.  Generated from configure.ac by autoheader.  */
-
-/* Define to 1 if the `closedir' function returns void instead of `int'. */
-/* #undef CLOSEDIR_VOID */
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
-   systems. This function is required for `alloca.c' support on those systems.
-   */
-/* #undef CRAY_STACKSEG_END */
-
-/* Define to 1 if using `alloca.c'. */
-/* #undef C_ALLOCA */
-
-/* Name of "diff" program, unless overridden. */
-#define DEFAULT_DIFF_PROGRAM "diff"
-
-/* Name of editor program, unless overridden. */
-#define DEFAULT_EDITOR_PROGRAM "ed"
-
-/* Define to 1 if translation of program messages to the user's native
-   language is requested. */
-/* #undef ENABLE_NLS */
-
-/* Define on systems for which file names may have a so-called `drive letter'
-   prefix, define this to compute the length of that prefix, including the
-   colon. */
-#define FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX 0
-
-/* Define if the backslash character may also serve as a file name component
-   separator. */
-#define FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR 0
-
-#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
-# define FILESYSTEM_PREFIX_LEN(Filename) \
-  ((Filename)[0] && (Filename)[1] == ':' ? 2 : 0)
-#else
-# define FILESYSTEM_PREFIX_LEN(Filename) 0
-#endif
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#define HAVE_ALLOCA 1
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
-   */
-/* #undef HAVE_ALLOCA_H */
-
-/* Define to 1 if you have the `bcopy' function. */
-#define HAVE_BCOPY 1
-
-/* Define to 1 if you have the `btowc' function. */
-/* #undef HAVE_BTOWC */
-
-/* Define to 1 if you have the `bzero' function. */
-#define HAVE_BZERO 1
-
-/* Define to 1 if you have the `clock_gettime' function. */
-#define HAVE_CLOCK_GETTIME 1
-
-/* Define if backslash-a works in C strings. */
-#define HAVE_C_BACKSLASH_A 1
-
-/* Define to 1 if C supports variable-length arrays. */
-#define HAVE_C_VARARRAYS 1
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
-   */
-/* #undef HAVE_DCGETTEXT */
-
-/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_CLEARERR_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
-   don't. */
-#define HAVE_DECL_FEOF_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FERROR_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FFLUSH_UNLOCKED 0
-
-/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FGETS_UNLOCKED 0
-
-/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FPUTC_UNLOCKED 0
-
-/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FPUTS_UNLOCKED 0
-
-/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FREAD_UNLOCKED 0
-
-/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_FWRITE_UNLOCKED 0
-
-/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_GETCHAR_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
-   don't. */
-#define HAVE_DECL_GETC_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
-   */
-#define HAVE_DECL_GETENV 1
-
-/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
-   you don't. */
-#define HAVE_DECL_PUTCHAR_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
-   don't. */
-#define HAVE_DECL_PUTC_UNLOCKED 1
-
-/* Define to 1 if you have the declaration of `strerror', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRERROR 1
-
-/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRERROR_R 1
-
-/* Define to 1 if you have the declaration of `strtoimax', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRTOIMAX 1
-
-/* Define to 1 if you have the declaration of `strtol', and to 0 if you don't.
-   */
-#define HAVE_DECL_STRTOL 1
-
-/* Define to 1 if you have the declaration of `strtoul', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRTOUL 1
-
-/* Define to 1 if you have the declaration of `strtoull', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRTOULL 1
-
-/* Define to 1 if you have the declaration of `strtoumax', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRTOUMAX 1
-
-/* Define to 1 if you have the `diraccess' function. */
-/* #undef HAVE_DIRACCESS */
-
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
-#define HAVE_DIRENT_H 1
-
-/* Define if the malloc check has been performed. */
-#define HAVE_DONE_WORKING_MALLOC_CHECK 1
-
-/* Define if the realloc check has been performed. */
-#define HAVE_DONE_WORKING_REALLOC_CHECK 1
-
-/* Define to 1 if you have the `doprnt' function. */
-/* #undef HAVE_DOPRNT */
-
-/* Define to 1 if you have the `dup2' function. */
-#define HAVE_DUP2 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if your system has a working `fnmatch' function. */
-#define HAVE_FNMATCH 1
-
-/* Define to 1 if you have the `fork' function. */
-#define HAVE_FORK 1
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-/* #undef HAVE_GETTEXT */
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define if you have the iconv() function. */
-#define HAVE_ICONV 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the `isascii' function. */
-#define HAVE_ISASCII 1
-
-/* Define to 1 if you have the `iswprint' function. */
-/* #undef HAVE_ISWPRINT */
-
-/* Define to 1 if you have the <libintl.h> header file. */
-/* #undef HAVE_LIBINTL_H */
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define to 1 if you have the <locale.h> header file. */
-#define HAVE_LOCALE_H 1
-
-/* Define to 1 if you have the `localtime_r' function. */
-#define HAVE_LOCALTIME_R 1
-
-/* Define if you have the long long type. */
-#define HAVE_LONG_LONG 1
-
-/* Define to 1 if you have the `mblen' function. */
-#define HAVE_MBLEN 1
-
-/* Define to 1 if you have the `mbrlen' function. */
-/* #undef HAVE_MBRLEN */
-
-/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
-/* #undef HAVE_MBRTOWC */
-
-/* Define to 1 if you have the `memchr' function. */
-#define HAVE_MEMCHR 1
-
-/* Define to 1 if you have the `memcpy' function. */
-#define HAVE_MEMCPY 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `mempcpy' function. */
-/* #undef HAVE_MEMPCPY */
-
-/* Define to 1 if you have the `memset' function. */
-#define HAVE_MEMSET 1
-
-/* Define to 1 if you have the `mkstemp' function. */
-#define HAVE_MKSTEMP 1
-
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-/* #undef HAVE_NDIR_H */
-
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
-/* Define to 1 if you have the DOS-style `setmode' function. */
-/* #undef HAVE_SETMODE_DOS */
-
-/* Define to 1 if you have the `sigaction' function. */
-#define HAVE_SIGACTION 1
-
-/* Define to 1 if the system has the type `siginfo_t'. */
-#define HAVE_SIGINFO_T 1
-
-/* Define to 1 if you have the `sigprocmask' function. */
-#define HAVE_SIGPROCMASK 1
-
-/* Define to 1 if the system has the type `stack_t'. */
-#define HAVE_STACK_T 1
-
-/* Define to 1 if stdbool.h conforms to C99. */
-/* #undef HAVE_STDBOOL_H */
-
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the `strcasecmp' function. */
-#define HAVE_STRCASECMP 1
-
-/* Define to 1 if you have the `strchr' function. */
-#define HAVE_STRCHR 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
-/* Define to 1 if you have the `strerror_r' function. */
-#define HAVE_STRERROR_R 1
-
-/* Define to 1 if you have the `strftime' function. */
-#define HAVE_STRFTIME 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strtoul' function. */
-#define HAVE_STRTOUL 1
-
-/* Define to 1 if you have the `strtoull' function. */
-#define HAVE_STRTOULL 1
-
-/* Define to 1 if you have the `strtoumax' function. */
-/* #undef HAVE_STRTOUMAX */
-
-/* Define to 1 if `st_blksize' is member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
-
-/* Define to 1 if `st_rdev' is member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_RDEV 1
-
-/* Define to 1 if `tm_zone' is member of `struct tm'. */
-#define HAVE_STRUCT_TM_TM_ZONE 1
-
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_DIR_H */
-
-/* Define to 1 if you have the <sys/file.h> header file. */
-#define HAVE_SYS_FILE_H 1
-
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-   */
-/* #undef HAVE_SYS_NDIR_H */
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define to 1 if you have the <time.h> header file. */
-#define HAVE_TIME_H 1
-
-/* Define to 1 if you have the `tmpnam' function. */
-#define HAVE_TMPNAM 1
-
-/* Define if struct tm has the tm_gmtoff member. */
-#define HAVE_TM_GMTOFF 1
-
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
-   `HAVE_STRUCT_TM_TM_ZONE' instead. */
-#define HAVE_TM_ZONE 1
-
-/* Define to 1 if you don't have `tm_zone' but do have the external array
-   `tzname'. */
-/* #undef HAVE_TZNAME */
-
-/* Define to 1 if you have the `tzset' function. */
-#define HAVE_TZSET 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define if you have the unsigned long long type. */
-#define HAVE_UNSIGNED_LONG_LONG 1
-
-/* Define to 1 if you have the `vfork' function. */
-#define HAVE_VFORK 1
-
-/* Define to 1 if you have the <vfork.h> header file. */
-/* #undef HAVE_VFORK_H */
-
-/* Define to 1 if you have the `vprintf' function. */
-#define HAVE_VPRINTF 1
-
-/* Define to 1 if you have the `waitpid' function. */
-#define HAVE_WAITPID 1
-
-/* Define to 1 if you have the <wchar.h> header file. */
-#define HAVE_WCHAR_H 1
-
-/* Define to 1 if you have the <wctype.h> header file. */
-#define HAVE_WCTYPE_H 1
-
-/* Define to 1 if `fork' works. */
-#define HAVE_WORKING_FORK 1
-
-/* Define to 1 if `vfork' works. */
-#define HAVE_WORKING_VFORK 1
-
-/* Define to 1 if extending the stack slightly past the limit causes a
-   SIGSEGV, and an alternate stack can be established with sigaltstack, and
-   the signal handler is passed a context that specifies the run time stack.
-   This behavior is defined by POSIX 1003.1-2001 with the X/Open System
-   Interface (XSI) option and is a standardized way to implement a SEGV-based
-   stack overflow detection heuristic. */
-/* #undef HAVE_XSI_STACK_OVERFLOW_HEURISTIC */
-
-/* Define to 1 if you have the `__secure_getenv' function. */
-/* #undef HAVE___SECURE_GETENV */
-
-#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
-# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-#else
-# define ISSLASH(C) ((C) == '/')
-#endif
-
-/* Name of package */
-#define PACKAGE "diffutils"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "bug-gnu-utils@gnu.org"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "GNU diffutils"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU diffutils 2.8.1"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "diffutils"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "2.8.1"
-
-/* Define if compiler has function prototypes */
-#define PROTOTYPES 1
-
-/* Name of "pr" program. */
-#define PR_PROGRAM "/usr/bin/pr"
-
-/* Define to 1 to avoid alloca in the regular-expression implementation. */
-#define REGEX_MALLOC 1
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#define RETSIGTYPE void
-
-/* If using the C implementation of alloca, define if you know the
-   direction of stack growth for your system; otherwise it will be
-   automatically deduced at run-time.
-        STACK_DIRECTION > 0 => grows toward higher addresses
-        STACK_DIRECTION < 0 => grows toward lower addresses
-        STACK_DIRECTION = 0 => direction of growth unknown */
-/* #undef STACK_DIRECTION */
-
-/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
-/* #undef STAT_MACROS_BROKEN */
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if strerror_r returns char *. */
-/* #undef STRERROR_R_CHAR_P */
-
-/* Define to be the nanoseconds member of struct stat's st_mtim, if it exists.
-   */
-/* #undef ST_MTIM_NSEC */
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define to 1 if your <sys/time.h> declares `struct tm'. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Version number of package */
-#define VERSION "2.8.1"
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _FILE_OFFSET_BITS */
-
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _LARGE_FILES */
-
-/* Enable Solaris extensions. */
-#define __EXTENSIONS__ 1
-
-/* Define like PROTOTYPES; this can be used by system headers. */
-#define __PROTOTYPES 1
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Define as `__inline' if that's what the C compiler calls it, or to nothing
-   if it is not supported. */
-/* #undef inline */
-
-/* Define to widest signed type if <inttypes.h> doesn't define. */
-/* #undef intmax_t */
-
-/* Define to rpl_malloc if the replacement function should be used. */
-/* #undef malloc */
-
-/* Define to a type if <wchar.h> does not define. */
-/* #undef mbstate_t */
-
-/* Define to the name of the strftime replacement function. */
-#define my_strftime nstrftime
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef pid_t */
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef ptrdiff_t */
-
-/* Define to rpl_realloc if the replacement function should be used. */
-/* #undef realloc */
-
-/* Define to `int' if <sys/types.h> does not define. */
-/* #undef ssize_t */
-
-/* Define to widest unsigned type if <inttypes.h> doesn't define. */
-/* #undef uintmax_t */
-
-/* Define as `fork' if `vfork' does not work. */
-/* #undef vfork */
diff --git a/contrib/diffutils-2.8.1/doc/Makefile.am b/contrib/diffutils-2.8.1/doc/Makefile.am
deleted file mode 100644 (file)
index 574fdab..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# Makefile for GNU diffutils documentation.
-
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2, or (at your option)
-## any later version.
-
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-AM_MAKEINFOFLAGS = --no-split
-
-info_TEXINFOS = diff.texi
-diff_TEXINFOS = fdl.texi
-
-EXTRA_DIST = diagmeet.note
diff --git a/contrib/diffutils-2.8.1/doc/diagmeet.note b/contrib/diffutils-2.8.1/doc/diagmeet.note
deleted file mode 100644 (file)
index 8f7242c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-Here is a comparison matrix which shows a case in which
-it is possible for the forward and backward scan in `diag'
-to meet along a nonzero length of diagonal simultaneous
-(so that bdiag[d] and fdiag[d] are not equal)
-even though there is no snake on that diagonal at the meeting point.
-
-
-     85   1   1   1  159  1   1   17
-        1   2   3   4
-60
-    1   2
-1
-    2              2   3   4
-71
-    3       3          4   5
-85
-    4          3   4   5
-17
-    5          4   5
-1
-    6       4          5   6
-183
-    7       5   6   7
-10
-    8              6   7
-1
-    9           6   7          8
-12
-                7   8   9  10
-13
-       10       8   9  10
-14
-           10   9  10
-17
-       10      10
-1
-   10   9  10
-1
-       8      10      10      10
-183
-    8   7      9       9       9
-10
-    7   6      8   9   8       8
-1
-    6   5              7       7
-1
-            5                  6       6
-1
-               5       5       5
-50
-           5   4       4       4
-1
-                   4   3       3
-85
-           5   4   3   2       2
-1
-                           2   1
-17
-           5   4   3   2   1       1
-1
-                               1   0
-     85   1   1   1  159  1   1  17
-
-
-
-
-
-
-
-
-
diff --git a/contrib/diffutils-2.8.1/doc/diff.info b/contrib/diffutils-2.8.1/doc/diff.info
deleted file mode 100644 (file)
index d58accf..0000000
+++ /dev/null
@@ -1,5084 +0,0 @@
-This is diff.info, produced by makeinfo version 4.2 from diff.texi.
-
-This manual is for GNU Diffutils (version 2.8.1, 5 April 2002), and
-documents the GNU `diff', `diff3', `sdiff', and `cmp' commands for
-showing the differences between files and the GNU `patch' command for
-using their output to update files.
-
-   Copyright (C) 1992, 1993, 1994, 1998, 2001, 2002 Free Software
-Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.1 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have freedom to copy and
-     modify this GNU Manual, like GNU software.  Copies published by
-     the Free Software Foundation raise funds for GNU development."
-   
-INFO-DIR-SECTION Individual utilities
-START-INFO-DIR-ENTRY
-* cmp: (diff)Invoking cmp.                      Compare 2 files byte by byte.
-* diff: (diff)Invoking diff.                    Compare 2 files line by line.
-* diff3: (diff)Invoking diff3.                  Compare 3 files line by line.
-* patch: (diff)Invoking patch.                  Apply a patch to a file.
-* sdiff: (diff)Invoking sdiff.                  Merge 2 files side-by-side.
-END-INFO-DIR-ENTRY
-
-INFO-DIR-SECTION GNU packages
-START-INFO-DIR-ENTRY
-* Diff: (diff).                 Comparing and merging files.
-END-INFO-DIR-ENTRY
-
-\1f
-File: diff.info,  Node: Top,  Next: Overview,  Up: (dir)
-
-Comparing and Merging Files
-***************************
-
-This manual is for GNU Diffutils (version 2.8.1, 5 April 2002), and
-documents the GNU `diff', `diff3', `sdiff', and `cmp' commands for
-showing the differences between files and the GNU `patch' command for
-using their output to update files.
-
-   Copyright (C) 1992, 1993, 1994, 1998, 2001, 2002 Free Software
-Foundation, Inc.
-
-     Permission is granted to copy, distribute and/or modify this
-     document under the terms of the GNU Free Documentation License,
-     Version 1.1 or any later version published by the Free Software
-     Foundation; with no Invariant Sections, with the Front-Cover texts
-     being "A GNU Manual," and with the Back-Cover Texts as in (a)
-     below.  A copy of the license is included in the section entitled
-     "GNU Free Documentation License."
-
-     (a) The FSF's Back-Cover Text is: "You have freedom to copy and
-     modify this GNU Manual, like GNU software.  Copies published by
-     the Free Software Foundation raise funds for GNU development."
-   
-* Menu:
-
-* Overview::              Preliminary information.
-* Comparison::            What file comparison means.
-
-* Output Formats::        Formats for two-way difference reports.
-* Incomplete Lines::      Lines that lack trailing newlines.
-* Comparing Directories:: Comparing files and directories.
-* Adjusting Output::      Making `diff' output prettier.
-* diff Performance::      Making `diff' smarter or faster.
-
-* Comparing Three Files:: Formats for three-way difference reports.
-* diff3 Merging::         Merging from a common ancestor.
-
-* Interactive Merging::   Interactive merging with `sdiff'.
-
-* Merging with patch::    Using `patch' to change old files into new ones.
-* Making Patches::        Tips for making and using patch distributions.
-
-* Invoking cmp::          Compare two files byte by byte.
-* Invoking diff::         Compare two files line by line.
-* Invoking diff3::        Compare three files line by line.
-* Invoking patch::        Apply a diff file to an original.
-* Invoking sdiff::        Side-by-side merge of file differences.
-
-* Standards conformance:: Conformance to the POSIX standard.
-* Projects::              If you've found a bug or other shortcoming.
-
-* Copying This Manual::   How to make copies of this manual.
-* Index::                 Index.
-
-\1f
-File: diff.info,  Node: Overview,  Next: Comparison,  Prev: Top,  Up: Top
-
-Overview
-********
-
-   Computer users often find occasion to ask how two files differ.
-Perhaps one file is a newer version of the other file.  Or maybe the
-two files started out as identical copies but were changed by different
-people.
-
-   You can use the `diff' command to show differences between two
-files, or each corresponding file in two directories.  `diff' outputs
-differences between files line by line in any of several formats,
-selectable by command line options.  This set of differences is often
-called a "diff" or "patch".  For files that are identical, `diff'
-normally produces no output; for binary (non-text) files, `diff'
-normally reports only that they are different.
-
-   You can use the `cmp' command to show the byte and line numbers
-where two files differ.  `cmp' can also show all the bytes that differ
-between the two files, side by side.  A way to compare two files
-character by character is the Emacs command `M-x compare-windows'.
-*Note Other Window: (emacs)Other Window, for more information on that
-command.
-
-   You can use the `diff3' command to show differences among three
-files.  When two people have made independent changes to a common
-original, `diff3' can report the differences between the original and
-the two changed versions, and can produce a merged file that contains
-both persons' changes together with warnings about conflicts.
-
-   You can use the `sdiff' command to merge two files interactively.
-
-   You can use the set of differences produced by `diff' to distribute
-updates to text files (such as program source code) to other people.
-This method is especially useful when the differences are small compared
-to the complete files.  Given `diff' output, you can use the `patch'
-program to update, or "patch", a copy of the file.  If you think of
-`diff' as subtracting one file from another to produce their
-difference, you can think of `patch' as adding the difference to one
-file to reproduce the other.
-
-   This manual first concentrates on making diffs, and later shows how
-to use diffs to update files.
-
-   GNU `diff' was written by Paul Eggert, Mike Haertel, David Hayes,
-Richard Stallman, and Len Tower.  Wayne Davison designed and
-implemented the unified output format.  The basic algorithm is described
-in "An O(ND) Difference Algorithm and its Variations", Eugene W. Myers,
-`Algorithmica' Vol. 1 No. 2, 1986, pp. 251-266; and in "A File
-Comparison Program", Webb Miller and Eugene W. Myers,
-`Software--Practice and Experience' Vol. 15 No. 11, 1985, pp. 1025-1040.
-The algorithm was independently discovered as described in "Algorithms
-for Approximate String Matching", E. Ukkonen, `Information and Control'
-Vol. 64, 1985, pp. 100-118.
-
-   GNU `diff3' was written by Randy Smith.  GNU `sdiff' was written by
-Thomas Lord.  GNU `cmp' was written by Torbjorn Granlund and David
-MacKenzie.
-
-   `patch' was written mainly by Larry Wall and Paul Eggert; several
-GNU enhancements were contributed by Wayne Davison and David MacKenzie.
-Parts of this manual are adapted from a manual page written by Larry
-Wall, with his permission.
-
-\1f
-File: diff.info,  Node: Comparison,  Next: Output Formats,  Prev: Overview,  Up: Top
-
-What Comparison Means
-*********************
-
-   There are several ways to think about the differences between two
-files.  One way to think of the differences is as a series of lines
-that were deleted from, inserted in, or changed in one file to produce
-the other file.  `diff' compares two files line by line, finds groups of
-lines that differ, and reports each group of differing lines.  It can
-report the differing lines in several formats, which have different
-purposes.
-
-   GNU `diff' can show whether files are different without detailing
-the differences.  It also provides ways to suppress certain kinds of
-differences that are not important to you.  Most commonly, such
-differences are changes in the amount of white space between words or
-lines.  `diff' also provides ways to suppress differences in alphabetic
-case or in lines that match a regular expression that you provide.
-These options can accumulate; for example, you can ignore changes in
-both white space and alphabetic case.
-
-   Another way to think of the differences between two files is as a
-sequence of pairs of bytes that can be either identical or different.
-`cmp' reports the differences between two files byte by byte, instead
-of line by line.  As a result, it is often more useful than `diff' for
-comparing binary files.  For text files, `cmp' is useful mainly when
-you want to know only whether two files are identical, or whether one
-file is a prefix of the other.
-
-   To illustrate the effect that considering changes byte by byte can
-have compared with considering them line by line, think of what happens
-if a single newline character is added to the beginning of a file.  If
-that file is then compared with an otherwise identical file that lacks
-the newline at the beginning, `diff' will report that a blank line has
-been added to the file, while `cmp' will report that almost every byte
-of the two files differs.
-
-   `diff3' normally compares three input files line by line, finds
-groups of lines that differ, and reports each group of differing lines.
-Its output is designed to make it easy to inspect two different sets of
-changes to the same file.
-
-* Menu:
-
-* Hunks::             Groups of differing lines.
-* White Space::       Suppressing differences in white space.
-* Blank Lines::       Suppressing differences in blank lines.
-* Case Folding::      Suppressing differences in alphabetic case.
-* Specified Folding:: Suppressing differences that match regular expressions.
-* Brief::             Summarizing which files are different.
-* Binary::            Comparing binary files or forcing text comparisons.
-
-\1f
-File: diff.info,  Node: Hunks,  Next: White Space,  Up: Comparison
-
-Hunks
-=====
-
-   When comparing two files, `diff' finds sequences of lines common to
-both files, interspersed with groups of differing lines called "hunks".
-Comparing two identical files yields one sequence of common lines and
-no hunks, because no lines differ.  Comparing two entirely different
-files yields no common lines and one large hunk that contains all lines
-of both files.  In general, there are many ways to match up lines
-between two given files.  `diff' tries to minimize the total hunk size
-by finding large sequences of common lines interspersed with small
-hunks of differing lines.
-
-   For example, suppose the file `F' contains the three lines `a', `b',
-`c', and the file `G' contains the same three lines in reverse order
-`c', `b', `a'.  If `diff' finds the line `c' as common, then the command
-`diff F G' produces this output:
-
-     1,2d0
-     < a
-     < b
-     3a2,3
-     > b
-     > a
-
-But if `diff' notices the common line `b' instead, it produces this
-output:
-
-     1c1
-     < a
-     ---
-     > c
-     3c3
-     < c
-     ---
-     > a
-
-It is also possible to find `a' as the common line.  `diff' does not
-always find an optimal matching between the files; it takes shortcuts
-to run faster.  But its output is usually close to the shortest
-possible.  You can adjust this tradeoff with the `--minimal' option
-(*note diff Performance::).
-
-\1f
-File: diff.info,  Node: White Space,  Next: Blank Lines,  Prev: Hunks,  Up: Comparison
-
-Suppressing Differences in Blank and Tab Spacing
-================================================
-
-   The `-E' and `--ignore-tab-expansion' options ignore the distinction
-between tabs and spaces on input.  A tab is considered to be equivalent
-to the number of spaces to the next tab stop.  `diff' assumes that tab
-stops are set every 8 print columns.
-
-   The `-b' and `--ignore-space-change' options are stronger.  They
-ignore white space at line end, and consider all other sequences of one
-or more white space characters to be equivalent.  With these options,
-`diff' considers the following two lines to be equivalent, where `$'
-denotes the line end:
-
-     Here lyeth  muche rychnesse  in lytell space.   -- John Heywood$
-     Here lyeth muche rychnesse in lytell space. -- John Heywood   $
-
-   The `-w' and `--ignore-all-space' options are stronger still.  They
-ignore difference even if one line has white space where the other line
-has none.  "White space" characters include tab, newline, vertical tab,
-form feed, carriage return, and space; some locales may define
-additional characters to be white space.  With these options, `diff'
-considers the following two lines to be equivalent, where `$' denotes
-the line end and `^M' denotes a carriage return:
-
-     Here lyeth  muche  rychnesse in lytell space.--  John Heywood$
-       He relyeth much erychnes  seinly tells pace.  --John Heywood   ^M$
-
-\1f
-File: diff.info,  Node: Blank Lines,  Next: Case Folding,  Prev: White Space,  Up: Comparison
-
-Suppressing Differences in Blank Lines
-======================================
-
-   The `-B' and `--ignore-blank-lines' options ignore insertions or
-deletions of blank lines.  These options affect only lines that are
-completely empty; they do not affect lines that look empty but contain
-space or tab characters.  With these options, for example, a file
-containing
-     1.  A point is that which has no part.
-     
-     2.  A line is breadthless length.
-     -- Euclid, The Elements, I
-
-is considered identical to a file containing
-     1.  A point is that which has no part.
-     2.  A line is breadthless length.
-     
-     
-     -- Euclid, The Elements, I
-
-\1f
-File: diff.info,  Node: Case Folding,  Next: Specified Folding,  Prev: Blank Lines,  Up: Comparison
-
-Suppressing Case Differences
-============================
-
-   GNU `diff' can treat lower case letters as equivalent to their upper
-case counterparts, so that, for example, it considers `Funky Stuff',
-`funky STUFF', and `fUNKy stuFf' to all be the same.  To request this,
-use the `-i' or `--ignore-case' option.
-
-\1f
-File: diff.info,  Node: Specified Folding,  Next: Brief,  Prev: Case Folding,  Up: Comparison
-
-Suppressing Lines Matching a Regular Expression
-===============================================
-
-   To ignore insertions and deletions of lines that match a
-`grep'-style regular expression, use the `-I REGEXP' or
-`--ignore-matching-lines=REGEXP' option.  You should escape regular
-expressions that contain shell metacharacters to prevent the shell from
-expanding them.  For example, `diff -I '^[[:digit:]]'' ignores all
-changes to lines beginning with a digit.
-
-   However, `-I' only ignores the insertion or deletion of lines that
-contain the regular expression if every changed line in the hunk--every
-insertion and every deletion--matches the regular expression.  In other
-words, for each nonignorable change, `diff' prints the complete set of
-changes in its vicinity, including the ignorable ones.
-
-   You can specify more than one regular expression for lines to ignore
-by using more than one `-I' option.  `diff' tries to match each line
-against each regular expression.
-
-\1f
-File: diff.info,  Node: Brief,  Next: Binary,  Prev: Specified Folding,  Up: Comparison
-
-Summarizing Which Files Differ
-==============================
-
-   When you only want to find out whether files are different, and you
-don't care what the differences are, you can use the summary output
-format.  In this format, instead of showing the differences between the
-files, `diff' simply reports whether files differ.  The `-q' and
-`--brief' options select this output format.
-
-   This format is especially useful when comparing the contents of two
-directories.  It is also much faster than doing the normal line by line
-comparisons, because `diff' can stop analyzing the files as soon as it
-knows that there are any differences.
-
-   You can also get a brief indication of whether two files differ by
-using `cmp'.  For files that are identical, `cmp' produces no output.
-When the files differ, by default, `cmp' outputs the byte and line
-number where the first difference occurs.  You can use the `-s' option
-to suppress that information, so that `cmp' produces no output and
-reports whether the files differ using only its exit status (*note
-Invoking cmp::).
-
-   Unlike `diff', `cmp' cannot compare directories; it can only compare
-two files.
-
-\1f
-File: diff.info,  Node: Binary,  Prev: Brief,  Up: Comparison
-
-Binary Files and Forcing Text Comparisons
-=========================================
-
-   If `diff' thinks that either of the two files it is comparing is
-binary (a non-text file), it normally treats that pair of files much as
-if the summary output format had been selected (*note Brief::), and
-reports only that the binary files are different.  This is because line
-by line comparisons are usually not meaningful for binary files.
-
-   `diff' determines whether a file is text or binary by checking the
-first few bytes in the file; the exact number of bytes is system
-dependent, but it is typically several thousand.  If every byte in that
-part of the file is non-null, `diff' considers the file to be text;
-otherwise it considers the file to be binary.
-
-   Sometimes you might want to force `diff' to consider files to be
-text.  For example, you might be comparing text files that contain null
-characters; `diff' would erroneously decide that those are non-text
-files.  Or you might be comparing documents that are in a format used
-by a word processing system that uses null characters to indicate
-special formatting.  You can force `diff' to consider all files to be
-text files, and compare them line by line, by using the `-a' or
-`--text' option.  If the files you compare using this option do not in
-fact contain text, they will probably contain few newline characters,
-and the `diff' output will consist of hunks showing differences between
-long lines of whatever characters the files contain.
-
-   You can also force `diff' to consider all files to be binary files,
-and report only whether they differ (but not how).  Use the `-q' or
-`--brief' option for this.
-
-   Differing binary files are considered to cause trouble because the
-resulting `diff' output does not capture all the differences.  This
-trouble causes `diff' to exit with status 2.  However, this trouble
-cannot occur with the `--a' or `--text' option, or with the `-q' or
-`--brief' option, as these options both cause `diff' to treat binary
-files like text files.
-
-   In operating systems that distinguish between text and binary files,
-`diff' normally reads and writes all data as text.  Use the `--binary'
-option to force `diff' to read and write binary data instead.  This
-option has no effect on a POSIX-compliant system like GNU or
-traditional Unix.  However, many personal computer operating systems
-represent the end of a line with a carriage return followed by a
-newline.  On such systems, `diff' normally ignores these carriage
-returns on input and generates them at the end of each output line, but
-with the `--binary' option `diff' treats each carriage return as just
-another input character, and does not generate a carriage return at the
-end of each output line.  This can be useful when dealing with non-text
-files that are meant to be interchanged with POSIX-compliant systems.
-
-   The `--strip-trailing-cr' causes `diff' to treat input lines that
-end in carriage return followed by newline as if they end in plain
-newline.  This can be useful when comparing text that is imperfectly
-imported from many personal computer operating systems.  This option
-affects how lines are read, which in turn affects how they are compared
-and output.
-
-   If you want to compare two files byte by byte, you can use the `cmp'
-program with the `-l' option to show the values of each differing byte
-in the two files.  With GNU `cmp', you can also use the `-b' option to
-show the ASCII representation of those bytes.  *Note Invoking cmp::,
-for more information.
-
-   If `diff3' thinks that any of the files it is comparing is binary (a
-non-text file), it normally reports an error, because such comparisons
-are usually not useful.  `diff3' uses the same test as `diff' to decide
-whether a file is binary.  As with `diff', if the input files contain a
-few non-text bytes but otherwise are like text files, you can force
-`diff3' to consider all files to be text files and compare them line by
-line by using the `-a' or `--text' options.
-
-\1f
-File: diff.info,  Node: Output Formats,  Next: Incomplete Lines,  Prev: Comparison,  Up: Top
-
-`diff' Output Formats
-*********************
-
-   `diff' has several mutually exclusive options for output format.
-The following sections describe each format, illustrating how `diff'
-reports the differences between two sample input files.
-
-* Menu:
-
-* Sample diff Input:: Sample `diff' input files for examples.
-* Normal::            Showing differences without surrounding text.
-* Context::           Showing differences with the surrounding text.
-* Side by Side::      Showing differences in two columns.
-* Scripts::           Generating scripts for other programs.
-* If-then-else::      Merging files with if-then-else.
-
-\1f
-File: diff.info,  Node: Sample diff Input,  Next: Normal,  Up: Output Formats
-
-Two Sample Input Files
-======================
-
-   Here are two sample files that we will use in numerous examples to
-illustrate the output of `diff' and how various options can change it.
-
-   This is the file `lao':
-
-     The Way that can be told of is not the eternal Way;
-     The name that can be named is not the eternal name.
-     The Nameless is the origin of Heaven and Earth;
-     The Named is the mother of all things.
-     Therefore let there always be non-being,
-       so we may see their subtlety,
-     And let there always be being,
-       so we may see their outcome.
-     The two are the same,
-     But after they are produced,
-       they have different names.
-
-   This is the file `tzu':
-
-     The Nameless is the origin of Heaven and Earth;
-     The named is the mother of all things.
-     
-     Therefore let there always be non-being,
-       so we may see their subtlety,
-     And let there always be being,
-       so we may see their outcome.
-     The two are the same,
-     But after they are produced,
-       they have different names.
-     They both may be called deep and profound.
-     Deeper and more profound,
-     The door of all subtleties!
-
-   In this example, the first hunk contains just the first two lines of
-`lao', the second hunk contains the fourth line of `lao' opposing the
-second and third lines of `tzu', and the last hunk contains just the
-last three lines of `tzu'.
-
-\1f
-File: diff.info,  Node: Normal,  Next: Context,  Prev: Sample diff Input,  Up: Output Formats
-
-Showing Differences Without Context
-===================================
-
-   The "normal" `diff' output format shows each hunk of differences
-without any surrounding context.  Sometimes such output is the clearest
-way to see how lines have changed, without the clutter of nearby
-unchanged lines (although you can get similar results with the context
-or unified formats by using 0 lines of context).  However, this format
-is no longer widely used for sending out patches; for that purpose, the
-context format (*note Context Format::) and the unified format (*note
-Unified Format::) are superior.  Normal format is the default for
-compatibility with older versions of `diff' and the POSIX standard.
-Use the `--normal' option to select this output format explicitly.
-
-* Menu:
-
-* Detailed Normal:: A detailed description of normal output format.
-* Example Normal::  Sample output in the normal format.
-
-\1f
-File: diff.info,  Node: Detailed Normal,  Next: Example Normal,  Up: Normal
-
-Detailed Description of Normal Format
--------------------------------------
-
-   The normal output format consists of one or more hunks of
-differences; each hunk shows one area where the files differ.  Normal
-format hunks look like this:
-
-     CHANGE-COMMAND
-     < FROM-FILE-LINE
-     < FROM-FILE-LINE...
-     ---
-     > TO-FILE-LINE
-     > TO-FILE-LINE...
-
-   There are three types of change commands.  Each consists of a line
-number or comma-separated range of lines in the first file, a single
-character indicating the kind of change to make, and a line number or
-comma-separated range of lines in the second file.  All line numbers are
-the original line numbers in each file.  The types of change commands
-are:
-
-`LaR'
-     Add the lines in range R of the second file after line L of the
-     first file.  For example, `8a12,15' means append lines 12-15 of
-     file 2 after line 8 of file 1; or, if changing file 2 into file 1,
-     delete lines 12-15 of file 2.
-
-`FcT'
-     Replace the lines in range F of the first file with lines in range
-     T of the second file.  This is like a combined add and delete, but
-     more compact.  For example, `5,7c8,10' means change lines 5-7 of
-     file 1 to read as lines 8-10 of file 2; or, if changing file 2 into
-     file 1, change lines 8-10 of file 2 to read as lines 5-7 of file 1.
-
-`RdL'
-     Delete the lines in range R from the first file; line L is where
-     they would have appeared in the second file had they not been
-     deleted.  For example, `5,7d3' means delete lines 5-7 of file 1;
-     or, if changing file 2 into file 1, append lines 5-7 of file 1
-     after line 3 of file 2.
-
-\1f
-File: diff.info,  Node: Example Normal,  Prev: Detailed Normal,  Up: Normal
-
-An Example of Normal Format
----------------------------
-
-   Here is the output of the command `diff lao tzu' (*note Sample diff
-Input::, for the complete contents of the two files).  Notice that it
-shows only the lines that are different between the two files.
-
-     1,2d0
-     < The Way that can be told of is not the eternal Way;
-     < The name that can be named is not the eternal name.
-     4c2,3
-     < The Named is the mother of all things.
-     ---
-     > The named is the mother of all things.
-     >
-     11a11,13
-     > They both may be called deep and profound.
-     > Deeper and more profound,
-     > The door of all subtleties!
-
-\1f
-File: diff.info,  Node: Context,  Next: Side by Side,  Prev: Normal,  Up: Output Formats
-
-Showing Differences in Their Context
-====================================
-
-   Usually, when you are looking at the differences between files, you
-will also want to see the parts of the files near the lines that
-differ, to help you understand exactly what has changed.  These nearby
-parts of the files are called the "context".
-
-   GNU `diff' provides two output formats that show context around the
-differing lines: "context format" and "unified format".  It can
-optionally show in which function or section of the file the differing
-lines are found.
-
-   If you are distributing new versions of files to other people in the
-form of `diff' output, you should use one of the output formats that
-show context so that they can apply the diffs even if they have made
-small changes of their own to the files.  `patch' can apply the diffs
-in this case by searching in the files for the lines of context around
-the differing lines; if those lines are actually a few lines away from
-where the diff says they are, `patch' can adjust the line numbers
-accordingly and still apply the diff correctly.  *Note Imperfect::, for
-more information on using `patch' to apply imperfect diffs.
-
-* Menu:
-
-* Context Format::  An output format that shows surrounding lines.
-* Unified Format::  A more compact output format that shows context.
-* Sections::        Showing which sections of the files differences are in.
-* Alternate Names:: Showing alternate file names in context headers.
-
-\1f
-File: diff.info,  Node: Context Format,  Next: Unified Format,  Up: Context
-
-Context Format
---------------
-
-   The context output format shows several lines of context around the
-lines that differ.  It is the standard format for distributing updates
-to source code.
-
-   To select this output format, use the `-C LINES',
-`--context[=LINES]', or `-c' option.  The argument LINES that some of
-these options take is the number of lines of context to show.  If you
-do not specify LINES, it defaults to three.  For proper operation,
-`patch' typically needs at least two lines of context.
-
-* Menu:
-
-* Detailed Context:: A detailed description of the context output format.
-* Example Context::  Sample output in context format.
-* Less Context::     Another sample with less context.
-
-\1f
-File: diff.info,  Node: Detailed Context,  Next: Example Context,  Up: Context Format
-
-Detailed Description of Context Format
-......................................
-
-   The context output format starts with a two-line header, which looks
-like this:
-
-     *** FROM-FILE FROM-FILE-MODIFICATION-TIME
-     --- TO-FILE TO-FILE-MODIFICATION TIME
-
-The time stamp normally looks like `2002-02-21 23:30:39.942229878
--0800' to indicate the date, time with fractional seconds, and time
-zone in Internet RFC 2822 format
-(ftp://ftp.isi.edu/in-notes/rfc2822.txt).  However, a traditional time
-stamp like `Thu Feb 21 23:30:39 2002' is used if the `LC_TIME' locale
-category is either `C' or `POSIX'.
-
-   You can change the header's content with the `--label=LABEL' option;
-see *Note Alternate Names::.
-
-   Next come one or more hunks of differences; each hunk shows one area
-where the files differ.  Context format hunks look like this:
-
-     ***************
-     *** FROM-FILE-LINE-RANGE ****
-       FROM-FILE-LINE
-       FROM-FILE-LINE...
-     --- TO-FILE-LINE-RANGE ----
-       TO-FILE-LINE
-       TO-FILE-LINE...
-
-   The lines of context around the lines that differ start with two
-space characters.  The lines that differ between the two files start
-with one of the following indicator characters, followed by a space
-character:
-
-`!'
-     A line that is part of a group of one or more lines that changed
-     between the two files.  There is a corresponding group of lines
-     marked with `!' in the part of this hunk for the other file.
-
-`+'
-     An "inserted" line in the second file that corresponds to nothing
-     in the first file.
-
-`-'
-     A "deleted" line in the first file that corresponds to nothing in
-     the second file.
-
-   If all of the changes in a hunk are insertions, the lines of
-FROM-FILE are omitted.  If all of the changes are deletions, the lines
-of TO-FILE are omitted.
-
-\1f
-File: diff.info,  Node: Example Context,  Next: Less Context,  Prev: Detailed Context,  Up: Context Format
-
-An Example of Context Format
-............................
-
-   Here is the output of `diff -c lao tzu' (*note Sample diff Input::,
-for the complete contents of the two files).  Notice that up to three
-lines that are not different are shown around each line that is
-different; they are the context lines.  Also notice that the first two
-hunks have run together, because their contents overlap.
-
-     *** lao   2002-02-21 23:30:39.942229878 -0800
-     --- tzu   2002-02-21 23:30:50.442260588 -0800
-     ***************
-     *** 1,7 ****
-     - The Way that can be told of is not the eternal Way;
-     - The name that can be named is not the eternal name.
-       The Nameless is the origin of Heaven and Earth;
-     ! The Named is the mother of all things.
-       Therefore let there always be non-being,
-         so we may see their subtlety,
-       And let there always be being,
-     --- 1,6 ----
-       The Nameless is the origin of Heaven and Earth;
-     ! The named is the mother of all things.
-     !
-       Therefore let there always be non-being,
-         so we may see their subtlety,
-       And let there always be being,
-     ***************
-     *** 9,11 ****
-     --- 8,13 ----
-       The two are the same,
-       But after they are produced,
-         they have different names.
-     + They both may be called deep and profound.
-     + Deeper and more profound,
-     + The door of all subtleties!
-
-\1f
-File: diff.info,  Node: Less Context,  Prev: Example Context,  Up: Context Format
-
-An Example of Context Format with Less Context
-..............................................
-
-   Here is the output of `diff -C 1 lao tzu' (*note Sample diff
-Input::, for the complete contents of the two files).  Notice that at
-most one context line is reported here.
-
-     *** lao   2002-02-21 23:30:39.942229878 -0800
-     --- tzu   2002-02-21 23:30:50.442260588 -0800
-     ***************
-     *** 1,5 ****
-     - The Way that can be told of is not the eternal Way;
-     - The name that can be named is not the eternal name.
-       The Nameless is the origin of Heaven and Earth;
-     ! The Named is the mother of all things.
-       Therefore let there always be non-being,
-     --- 1,4 ----
-       The Nameless is the origin of Heaven and Earth;
-     ! The named is the mother of all things.
-     !
-       Therefore let there always be non-being,
-     ***************
-     *** 11 ****
-     --- 10,13 ----
-         they have different names.
-     + They both may be called deep and profound.
-     + Deeper and more profound,
-     + The door of all subtleties!
-
-\1f
-File: diff.info,  Node: Unified Format,  Next: Sections,  Prev: Context Format,  Up: Context
-
-Unified Format
---------------
-
-   The unified output format is a variation on the context format that
-is more compact because it omits redundant context lines.  To select
-this output format, use the `-U LINES', `--unified[=LINES]', or `-u'
-option.  The argument LINES is the number of lines of context to show.
-When it is not given, it defaults to three.
-
-   At present, only GNU `diff' can produce this format and only GNU
-`patch' can automatically apply diffs in this format.  For proper
-operation, `patch' typically needs at least three lines of context.
-
-* Menu:
-
-* Detailed Unified:: A detailed description of unified format.
-* Example Unified::  Sample output in unified format.
-
-\1f
-File: diff.info,  Node: Detailed Unified,  Next: Example Unified,  Up: Unified Format
-
-Detailed Description of Unified Format
-......................................
-
-   The unified output format starts with a two-line header, which looks
-like this:
-
-     --- FROM-FILE FROM-FILE-MODIFICATION-TIME
-     +++ TO-FILE TO-FILE-MODIFICATION-TIME
-
-The time stamp looks like `2002-02-21 23:30:39.942229878 -0800' to
-indicate the date, time with fractional seconds, and time zone.
-
-   You can change the header's content with the `--label=LABEL' option;
-see *Note Alternate Names::.
-
-   Next come one or more hunks of differences; each hunk shows one area
-where the files differ.  Unified format hunks look like this:
-
-     @@ FROM-FILE-RANGE TO-FILE-RANGE @@
-      LINE-FROM-EITHER-FILE
-      LINE-FROM-EITHER-FILE...
-
-   The lines common to both files begin with a space character.  The
-lines that actually differ between the two files have one of the
-following indicator characters in the left print column:
-
-`+'
-     A line was added here to the first file.
-
-`-'
-     A line was removed here from the first file.
-
-\1f
-File: diff.info,  Node: Example Unified,  Prev: Detailed Unified,  Up: Unified Format
-
-An Example of Unified Format
-............................
-
-   Here is the output of the command `diff -u lao tzu' (*note Sample
-diff Input::, for the complete contents of the two files):
-
-     --- lao   2002-02-21 23:30:39.942229878 -0800
-     +++ tzu   2002-02-21 23:30:50.442260588 -0800
-     @@ -1,7 +1,6 @@
-     -The Way that can be told of is not the eternal Way;
-     -The name that can be named is not the eternal name.
-      The Nameless is the origin of Heaven and Earth;
-     -The Named is the mother of all things.
-     +The named is the mother of all things.
-     +
-      Therefore let there always be non-being,
-        so we may see their subtlety,
-      And let there always be being,
-     @@ -9,3 +8,6 @@
-      The two are the same,
-      But after they are produced,
-        they have different names.
-     +They both may be called deep and profound.
-     +Deeper and more profound,
-     +The door of all subtleties!
-
-\1f
-File: diff.info,  Node: Sections,  Next: Alternate Names,  Prev: Unified Format,  Up: Context
-
-Showing Which Sections Differences Are in
------------------------------------------
-
-   Sometimes you might want to know which part of the files each change
-falls in.  If the files are source code, this could mean which function
-was changed.  If the files are documents, it could mean which chapter or
-appendix was changed.  GNU `diff' can show this by displaying the
-nearest section heading line that precedes the differing lines.  Which
-lines are "section headings" is determined by a regular expression.
-
-* Menu:
-
-* Specified Headings::  Showing headings that match regular expressions.
-* C Function Headings:: Showing headings of C functions.
-
-\1f
-File: diff.info,  Node: Specified Headings,  Next: C Function Headings,  Up: Sections
-
-Showing Lines That Match Regular Expressions
-............................................
-
-   To show in which sections differences occur for files that are not
-source code for C or similar languages, use the `-F REGEXP' or
-`--show-function-line=REGEXP' option.  `diff' considers lines that
-match the `grep'-style regular expression REGEXP to be the beginning of
-a section of the file.  Here are suggested regular expressions for some
-common languages:
-
-`^[[:alpha:]$_]'
-     C, C++, Prolog
-
-`^('
-     Lisp
-
-`^@node'
-     Texinfo
-
-   This option does not automatically select an output format; in order
-to use it, you must select the context format (*note Context Format::)
-or unified format (*note Unified Format::).  In other output formats it
-has no effect.
-
-   The `-F' and `--show-function-line' options find the nearest
-unchanged line that precedes each hunk of differences and matches the
-given regular expression.  Then they add that line to the end of the
-line of asterisks in the context format, or to the `@@' line in unified
-format.  If no matching line exists, they leave the output for that
-hunk unchanged.  If that line is more than 40 characters long, they
-output only the first 40 characters.  You can specify more than one
-regular expression for such lines; `diff' tries to match each line
-against each regular expression, starting with the last one given.  This
-means that you can use `-p' and `-F' together, if you wish.
-
-\1f
-File: diff.info,  Node: C Function Headings,  Prev: Specified Headings,  Up: Sections
-
-Showing C Function Headings
-...........................
-
-   To show in which functions differences occur for C and similar
-languages, you can use the `-p' or `--show-c-function' option.  This
-option automatically defaults to the context output format (*note
-Context Format::), with the default number of lines of context.  You
-can override that number with `-C LINES' elsewhere in the command line.
-You can override both the format and the number with `-U LINES'
-elsewhere in the command line.
-
-   The `-p' and `--show-c-function' options are equivalent to `-F
-'^[[:alpha:]$_]'' if the unified format is specified, otherwise `-c -F
-'^[[:alpha:]$_]'' (*note Specified Headings::).  GNU `diff' provides
-them for the sake of convenience.
-
-\1f
-File: diff.info,  Node: Alternate Names,  Prev: Sections,  Up: Context
-
-Showing Alternate File Names
-----------------------------
-
-   If you are comparing two files that have meaningless or uninformative
-names, you might want `diff' to show alternate names in the header of
-the context and unified output formats.  To do this, use the
-`--label=LABEL' option.  The first time you give this option, its
-argument replaces the name and date of the first file in the header;
-the second time, its argument replaces the name and date of the second
-file.  If you give this option more than twice, `diff' reports an
-error.  The `--label' option does not affect the file names in the `pr'
-header when the `-l' or `--paginate' option is used (*note
-Pagination::).
-
-   Here are the first two lines of the output from `diff -C 2
---label=original --label=modified lao tzu':
-
-     *** original
-     --- modified
-
-\1f
-File: diff.info,  Node: Side by Side,  Next: Scripts,  Prev: Context,  Up: Output Formats
-
-Showing Differences Side by Side
-================================
-
-   `diff' can produce a side by side difference listing of two files.
-The files are listed in two columns with a gutter between them.  The
-gutter contains one of the following markers:
-
-white space
-     The corresponding lines are in common.  That is, either the lines
-     are identical, or the difference is ignored because of one of the
-     `--ignore' options (*note White Space::).
-
-`|'
-     The corresponding lines differ, and they are either both complete
-     or both incomplete.
-
-`<'
-     The files differ and only the first file contains the line.
-
-`>'
-     The files differ and only the second file contains the line.
-
-`('
-     Only the first file contains the line, but the difference is
-     ignored.
-
-`)'
-     Only the second file contains the line, but the difference is
-     ignored.
-
-`\'
-     The corresponding lines differ, and only the first line is
-     incomplete.
-
-`/'
-     The corresponding lines differ, and only the second line is
-     incomplete.
-
-   Normally, an output line is incomplete if and only if the lines that
-it contains are incomplete; *Note Incomplete Lines::.  However, when an
-output line represents two differing lines, one might be incomplete
-while the other is not.  In this case, the output line is complete, but
-its the gutter is marked `\' if the first line is incomplete, `/' if
-the second line is.
-
-   Side by side format is sometimes easiest to read, but it has
-limitations.  It generates much wider output than usual, and truncates
-lines that are too long to fit.  Also, it relies on lining up output
-more heavily than usual, so its output looks particularly bad if you
-use varying width fonts, nonstandard tab stops, or nonprinting
-characters.
-
-   You can use the `sdiff' command to interactively merge side by side
-differences.  *Note Interactive Merging::, for more information on
-merging files.
-
-* Menu:
-
-* Side by Side Format::  Controlling side by side output format.
-* Example Side by Side:: Sample side by side output.
-
-\1f
-File: diff.info,  Node: Side by Side Format,  Next: Example Side by Side,  Up: Side by Side
-
-Controlling Side by Side Format
--------------------------------
-
-   The `-y' or `--side-by-side' option selects side by side format.
-Because side by side output lines contain two input lines, the output
-is wider than usual: normally 130 print columns, which can fit onto a
-traditional printer line.  You can set the width of the output with the
-`-W COLUMNS' or `--width=COLUMNS' option.  The output is split into two
-halves of equal width, separated by a small gutter to mark differences;
-the right half is aligned to a tab stop so that tabs line up.  Input
-lines that are too long to fit in half of an output line are truncated
-for output.
-
-   The `--left-column' option prints only the left column of two common
-lines.  The `--suppress-common-lines' option suppresses common lines
-entirely.
-
-\1f
-File: diff.info,  Node: Example Side by Side,  Prev: Side by Side Format,  Up: Side by Side
-
-An Example of Side by Side Format
----------------------------------
-
-   Here is the output of the command `diff -y -W 72 lao tzu' (*note
-Sample diff Input::, for the complete contents of the two files).
-
-     The Way that can be told of is n   <
-     The name that can be named is no   <
-     The Nameless is the origin of He        The Nameless is the origin of He
-     The Named is the mother of all t   |    The named is the mother of all t
-                                        >
-     Therefore let there always be no        Therefore let there always be no
-       so we may see their subtlety,           so we may see their subtlety,
-     And let there always be being,          And let there always be being,
-       so we may see their outcome.            so we may see their outcome.
-     The two are the same,                   The two are the same,
-     But after they are produced,            But after they are produced,
-       they have different names.              they have different names.
-                                        >    They both may be called deep and
-                                        >    Deeper and more profound,
-                                        >    The door of all subtleties!
-
-\1f
-File: diff.info,  Node: Scripts,  Next: If-then-else,  Prev: Side by Side,  Up: Output Formats
-
-Making Edit Scripts
-===================
-
-   Several output modes produce command scripts for editing FROM-FILE
-to produce TO-FILE.
-
-* Menu:
-
-* ed Scripts:: Using `diff' to produce commands for `ed'.
-* Forward ed:: Making forward `ed' scripts.
-* RCS::        A special `diff' output format used by RCS.
-
-\1f
-File: diff.info,  Node: ed Scripts,  Next: Forward ed,  Up: Scripts
-
-`ed' Scripts
-------------
-
-   `diff' can produce commands that direct the `ed' text editor to
-change the first file into the second file.  Long ago, this was the
-only output mode that was suitable for editing one file into another
-automatically; today, with `patch', it is almost obsolete.  Use the
-`-e' or `--ed' option to select this output format.
-
-   Like the normal format (*note Normal::), this output format does not
-show any context; unlike the normal format, it does not include the
-information necessary to apply the diff in reverse (to produce the first
-file if all you have is the second file and the diff).
-
-   If the file `d' contains the output of `diff -e old new', then the
-command `(cat d && echo w) | ed - old' edits `old' to make it a copy of
-`new'.  More generally, if `d1', `d2', ..., `dN' contain the outputs of
-`diff -e old new1', `diff -e new1 new2', ..., `diff -e newN-1 newN',
-respectively, then the command `(cat d1 d2 ... dN && echo w) | ed -
-old' edits `old' to make it a copy of `newN'.
-
-* Menu:
-
-* Detailed ed:: A detailed description of `ed' format.
-* Example ed::  A sample `ed' script.
-
-\1f
-File: diff.info,  Node: Detailed ed,  Next: Example ed,  Up: ed Scripts
-
-Detailed Description of `ed' Format
-...................................
-
-   The `ed' output format consists of one or more hunks of differences.
-The changes closest to the ends of the files come first so that
-commands that change the number of lines do not affect how `ed'
-interprets line numbers in succeeding commands.  `ed' format hunks look
-like this:
-
-     CHANGE-COMMAND
-     TO-FILE-LINE
-     TO-FILE-LINE...
-     .
-
-   Because `ed' uses a single period on a line to indicate the end of
-input, GNU `diff' protects lines of changes that contain a single
-period on a line by writing two periods instead, then writing a
-subsequent `ed' command to change the two periods into one.  The `ed'
-format cannot represent an incomplete line, so if the second file ends
-in a changed incomplete line, `diff' reports an error and then pretends
-that a newline was appended.
-
-   There are three types of change commands.  Each consists of a line
-number or comma-separated range of lines in the first file and a single
-character indicating the kind of change to make.  All line numbers are
-the original line numbers in the file.  The types of change commands
-are:
-
-`La'
-     Add text from the second file after line L in the first file.  For
-     example, `8a' means to add the following lines after line 8 of file
-     1.
-
-`Rc'
-     Replace the lines in range R in the first file with the following
-     lines.  Like a combined add and delete, but more compact.  For
-     example, `5,7c' means change lines 5-7 of file 1 to read as the
-     text file 2.
-
-`Rd'
-     Delete the lines in range R from the first file.  For example,
-     `5,7d' means delete lines 5-7 of file 1.
-
-\1f
-File: diff.info,  Node: Example ed,  Prev: Detailed ed,  Up: ed Scripts
-
-Example `ed' Script
-...................
-
-   Here is the output of `diff -e lao tzu' (*note Sample diff Input::,
-for the complete contents of the two files):
-
-     11a
-     They both may be called deep and profound.
-     Deeper and more profound,
-     The door of all subtleties!
-     .
-     4c
-     The named is the mother of all things.
-     
-     .
-     1,2d
-
-\1f
-File: diff.info,  Node: Forward ed,  Next: RCS,  Prev: ed Scripts,  Up: Scripts
-
-Forward `ed' Scripts
---------------------
-
-   `diff' can produce output that is like an `ed' script, but with
-hunks in forward (front to back) order.  The format of the commands is
-also changed slightly: command characters precede the lines they
-modify, spaces separate line numbers in ranges, and no attempt is made
-to disambiguate hunk lines consisting of a single period.  Like `ed'
-format, forward `ed' format cannot represent incomplete lines.
-
-   Forward `ed' format is not very useful, because neither `ed' nor
-`patch' can apply diffs in this format.  It exists mainly for
-compatibility with older versions of `diff'.  Use the `-f' or
-`--forward-ed' option to select it.
-
-\1f
-File: diff.info,  Node: RCS,  Prev: Forward ed,  Up: Scripts
-
-RCS Scripts
------------
-
-   The RCS output format is designed specifically for use by the
-Revision Control System, which is a set of free programs used for
-organizing different versions and systems of files.  Use the `-n' or
-`--rcs' option to select this output format.  It is like the forward
-`ed' format (*note Forward ed::), but it can represent arbitrary
-changes to the contents of a file because it avoids the forward `ed'
-format's problems with lines consisting of a single period and with
-incomplete lines.  Instead of ending text sections with a line
-consisting of a single period, each command specifies the number of
-lines it affects; a combination of the `a' and `d' commands are used
-instead of `c'.  Also, if the second file ends in a changed incomplete
-line, then the output also ends in an incomplete line.
-
-   Here is the output of `diff -n lao tzu' (*note Sample diff Input::,
-for the complete contents of the two files):
-
-     d1 2
-     d4 1
-     a4 2
-     The named is the mother of all things.
-     
-     a11 3
-     They both may be called deep and profound.
-     Deeper and more profound,
-     The door of all subtleties!
-
-\1f
-File: diff.info,  Node: If-then-else,  Prev: Scripts,  Up: Output Formats
-
-Merging Files with If-then-else
-===============================
-
-   You can use `diff' to merge two files of C source code.  The output
-of `diff' in this format contains all the lines of both files.  Lines
-common to both files are output just once; the differing parts are
-separated by the C preprocessor directives `#ifdef NAME' or `#ifndef
-NAME', `#else', and `#endif'.  When compiling the output, you select
-which version to use by either defining or leaving undefined the macro
-NAME.
-
-   To merge two files, use `diff' with the `-D NAME' or `--ifdef=NAME'
-option.  The argument NAME is the C preprocessor identifier to use in
-the `#ifdef' and `#ifndef' directives.
-
-   For example, if you change an instance of `wait (&s)' to `waitpid
-(-1, &s, 0)' and then merge the old and new files with the
-`--ifdef=HAVE_WAITPID' option, then the affected part of your code
-might look like this:
-
-         do {
-     #ifndef HAVE_WAITPID
-             if ((w = wait (&s)) < 0  &&  errno != EINTR)
-     #else /* HAVE_WAITPID */
-             if ((w = waitpid (-1, &s, 0)) < 0  &&  errno != EINTR)
-     #endif /* HAVE_WAITPID */
-                 return w;
-         } while (w != child);
-
-   You can specify formats for languages other than C by using line
-group formats and line formats, as described in the next sections.
-
-* Menu:
-
-* Line Group Formats::    Formats for general if-then-else line groups.
-* Line Formats::          Formats for each line in a line group.
-* Detailed If-then-else:: A detailed description of if-then-else format.
-* Example If-then-else::  Sample if-then-else format output.
-
-\1f
-File: diff.info,  Node: Line Group Formats,  Next: Line Formats,  Up: If-then-else
-
-Line Group Formats
-------------------
-
-   Line group formats let you specify formats suitable for many
-applications that allow if-then-else input, including programming
-languages and text formatting languages.  A line group format specifies
-the output format for a contiguous group of similar lines.
-
-   For example, the following command compares the TeX files `old' and
-`new', and outputs a merged file in which old regions are surrounded by
-`\begin{em}'-`\end{em}' lines, and new regions are surrounded by
-`\begin{bf}'-`\end{bf}' lines.
-
-     diff \
-        --old-group-format='\begin{em}
-     %<\end{em}
-     ' \
-        --new-group-format='\begin{bf}
-     %>\end{bf}
-     ' \
-        old new
-
-   The following command is equivalent to the above example, but it is a
-little more verbose, because it spells out the default line group
-formats.
-
-     diff \
-        --old-group-format='\begin{em}
-     %<\end{em}
-     ' \
-        --new-group-format='\begin{bf}
-     %>\end{bf}
-     ' \
-        --unchanged-group-format='%=' \
-        --changed-group-format='\begin{em}
-     %<\end{em}
-     \begin{bf}
-     %>\end{bf}
-     ' \
-        old new
-
-   Here is a more advanced example, which outputs a diff listing with
-headers containing line numbers in a "plain English" style.
-
-     diff \
-        --unchanged-group-format='' \
-        --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
-     %<' \
-        --new-group-format='-------- %dN line%(N=1?:s) added after %de:
-     %>' \
-        --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
-     %<-------- to:
-     %>' \
-        old new
-
-   To specify a line group format, use `diff' with one of the options
-listed below.  You can specify up to four line group formats, one for
-each kind of line group.  You should quote FORMAT, because it typically
-contains shell metacharacters.
-
-`--old-group-format=FORMAT'
-     These line groups are hunks containing only lines from the first
-     file.  The default old group format is the same as the changed
-     group format if it is specified; otherwise it is a format that
-     outputs the line group as-is.
-
-`--new-group-format=FORMAT'
-     These line groups are hunks containing only lines from the second
-     file.  The default new group format is same as the changed group
-     format if it is specified; otherwise it is a format that outputs
-     the line group as-is.
-
-`--changed-group-format=FORMAT'
-     These line groups are hunks containing lines from both files.  The
-     default changed group format is the concatenation of the old and
-     new group formats.
-
-`--unchanged-group-format=FORMAT'
-     These line groups contain lines common to both files.  The default
-     unchanged group format is a format that outputs the line group
-     as-is.
-
-   In a line group format, ordinary characters represent themselves;
-conversion specifications start with `%' and have one of the following
-forms.
-
-`%<'
-     stands for the lines from the first file, including the trailing
-     newline.  Each line is formatted according to the old line format
-     (*note Line Formats::).
-
-`%>'
-     stands for the lines from the second file, including the trailing
-     newline.  Each line is formatted according to the new line format.
-
-`%='
-     stands for the lines common to both files, including the trailing
-     newline.  Each line is formatted according to the unchanged line
-     format.
-
-`%%'
-     stands for `%'.
-
-`%c'C''
-     where C is a single character, stands for C.  C may not be a
-     backslash or an apostrophe.  For example, `%c':'' stands for a
-     colon, even inside the then-part of an if-then-else format, which
-     a colon would normally terminate.
-
-`%c'\O''
-     where O is a string of 1, 2, or 3 octal digits, stands for the
-     character with octal code O.  For example, `%c'\0'' stands for a
-     null character.
-
-`FN'
-     where F is a `printf' conversion specification and N is one of the
-     following letters, stands for N's value formatted with F.
-
-    `e'
-          The line number of the line just before the group in the old
-          file.
-
-    `f'
-          The line number of the first line in the group in the old
-          file; equals E + 1.
-
-    `l'
-          The line number of the last line in the group in the old file.
-
-    `m'
-          The line number of the line just after the group in the old
-          file; equals L + 1.
-
-    `n'
-          The number of lines in the group in the old file; equals L -
-          F + 1.
-
-    `E, F, L, M, N'
-          Likewise, for lines in the new file.
-
-     The `printf' conversion specification can be `%d', `%o', `%x', or
-     `%X', specifying decimal, octal, lower case hexadecimal, or upper
-     case hexadecimal output respectively.  After the `%' the following
-     options can appear in sequence: a series of zero or more flags; an
-     integer specifying the minimum field width; and a period followed
-     by an optional integer specifying the minimum number of digits.
-     The flags are `-' for left-justification, `'' for separating the
-     digit into groups as specified by the `LC_NUMERIC' locale category,
-     and `0' for padding with zeros instead of spaces.  For example,
-     `%5dN' prints the number of new lines in the group in a field of
-     width 5 characters, using the `printf' format `"%5d"'.
-
-`(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.  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.
-
-\1f
-File: diff.info,  Node: Line Formats,  Next: Detailed If-then-else,  Prev: Line Group Formats,  Up: If-then-else
-
-Line Formats
-------------
-
-   Line formats control how each line taken from an input file is
-output as part of a line group in if-then-else format.
-
-   For example, the following command outputs text with a one-character
-change indicator to the left of the text.  The first character of output
-is `-' for deleted lines, `|' for added lines, and a space for
-unchanged lines.  The formats contain newline characters where newlines
-are desired on output.
-
-     diff \
-        --old-line-format='-%l
-     ' \
-        --new-line-format='|%l
-     ' \
-        --unchanged-line-format=' %l
-     ' \
-        old new
-
-   To specify a line format, use one of the following options.  You
-should quote FORMAT, since it often contains shell metacharacters.
-
-`--old-line-format=FORMAT'
-     formats lines just from the first file.
-
-`--new-line-format=FORMAT'
-     formats lines just from the second file.
-
-`--unchanged-line-format=FORMAT'
-     formats lines common to both files.
-
-`--line-format=FORMAT'
-     formats all lines; in effect, it sets all three above options
-     simultaneously.
-
-   In a line format, ordinary characters represent themselves;
-conversion specifications start with `%' and have one of the following
-forms.
-
-`%l'
-     stands for the contents of the line, not counting its trailing
-     newline (if any).  This format ignores whether the line is
-     incomplete; *Note Incomplete Lines::.
-
-`%L'
-     stands for the contents of the line, including its trailing newline
-     (if any).  If a line is incomplete, this format preserves its
-     incompleteness.
-
-`%%'
-     stands for `%'.
-
-`%c'C''
-     where C is a single character, stands for C.  C may not be a
-     backslash or an apostrophe.  For example, `%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.  For example, `%c'\0'' stands for a
-     null character.
-
-`Fn'
-     where F is a `printf' conversion specification, stands for the
-     line number formatted with F.  For example, `%.5dn' prints the
-     line number using the `printf' format `"%.5d"'.  *Note Line Group
-     Formats::, for more about printf conversion specifications.
-
-   The default line format is `%l' followed by a newline character.
-
-   If the input contains tab characters and it is important that they
-line up on output, you should ensure that `%l' or `%L' in a line format
-is just after a tab stop (e.g. by preceding `%l' or `%L' with a tab
-character), or you should use the `-t' or `--expand-tabs' option.
-
-   Taken together, the line and line group formats let you specify many
-different formats.  For example, the following command uses a format
-similar to normal `diff' format.  You can tailor this command to get
-fine control over `diff' output.
-
-     diff \
-        --old-line-format='< %l
-     ' \
-        --new-line-format='> %l
-     ' \
-        --old-group-format='%df%(f=l?:,%dl)d%dE
-     %<' \
-        --new-group-format='%dea%dF%(F=L?:,%dL)
-     %>' \
-        --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
-     %<---
-     %>' \
-        --unchanged-group-format='' \
-        old new
-
-\1f
-File: diff.info,  Node: Detailed If-then-else,  Next: Example If-then-else,  Prev: Line Formats,  Up: If-then-else
-
-Detailed Description of If-then-else Format
--------------------------------------------
-
-   For lines common to both files, `diff' uses the unchanged line group
-format.  For each hunk of differences in the merged output format, if
-the hunk contains only lines from the first file, `diff' uses the old
-line group format; if the hunk contains only lines from the second
-file, `diff' uses the new group format; otherwise, `diff' uses the
-changed group format.
-
-   The old, new, and unchanged line formats specify the output format of
-lines from the first file, lines from the second file, and lines common
-to both files, respectively.
-
-   The option `--ifdef=NAME' is equivalent to the following sequence of
-options using shell syntax:
-
-     --old-group-format='#ifndef NAME
-     %<#endif /* ! NAME */
-     ' \
-     --new-group-format='#ifdef NAME
-     %>#endif /* NAME */
-     ' \
-     --unchanged-group-format='%=' \
-     --changed-group-format='#ifndef NAME
-     %<#else /* NAME */
-     %>#endif /* NAME */
-     '
-
-   You should carefully check the `diff' output for proper nesting.
-For example, when using the `-D NAME' or `--ifdef=NAME' option, you
-should check that if the differing lines contain any of the C
-preprocessor directives `#ifdef', `#ifndef', `#else', `#elif', or
-`#endif', they are nested properly and match.  If they don't, you must
-make corrections manually.  It is a good idea to carefully check the
-resulting code anyway to make sure that it really does what you want it
-to; depending on how the input files were produced, the output might
-contain duplicate or otherwise incorrect code.
-
-   The `patch' `-D NAME' option behaves like the `diff' `-D NAME'
-option, except it operates on a file and a diff to produce a merged
-file; *Note patch Options::.
-
-\1f
-File: diff.info,  Node: Example If-then-else,  Prev: Detailed If-then-else,  Up: If-then-else
-
-An Example of If-then-else Format
----------------------------------
-
-   Here is the output of `diff -DTWO lao tzu' (*note Sample diff
-Input::, for the complete contents of the two files):
-
-     #ifndef TWO
-     The Way that can be told of is not the eternal Way;
-     The name that can be named is not the eternal name.
-     #endif /* ! TWO */
-     The Nameless is the origin of Heaven and Earth;
-     #ifndef TWO
-     The Named is the mother of all things.
-     #else /* TWO */
-     The named is the mother of all things.
-     
-     #endif /* TWO */
-     Therefore let there always be non-being,
-       so we may see their subtlety,
-     And let there always be being,
-       so we may see their outcome.
-     The two are the same,
-     But after they are produced,
-       they have different names.
-     #ifdef TWO
-     They both may be called deep and profound.
-     Deeper and more profound,
-     The door of all subtleties!
-     #endif /* TWO */
-
-\1f
-File: diff.info,  Node: Incomplete Lines,  Next: Comparing Directories,  Prev: Output Formats,  Up: Top
-
-Incomplete Lines
-****************
-
-   When an input file ends in a non-newline character, its last line is
-called an "incomplete line" because its last character is not a
-newline.  All other lines are called "full lines" and end in a newline
-character.  Incomplete lines do not match full lines unless differences
-in white space are ignored (*note White Space::).
-
-   An incomplete line is normally distinguished on output from a full
-line by a following line that starts with `\'.  However, the RCS format
-(*note RCS::) outputs the incomplete line as-is, without any trailing
-newline or following line.  The side by side format normally represents
-incomplete lines as-is, but in some cases uses a `\' or `/' gutter
-marker; *Note Side by Side::.  The if-then-else line format preserves a
-line's incompleteness with `%L', and discards the newline with `%l';
-*Note Line Formats::.  Finally, with the `ed' and forward `ed' output
-formats (*note Output Formats::) `diff' cannot represent an incomplete
-line, so it pretends there was a newline and reports an error.
-
-   For example, suppose `F' and `G' are one-byte files that contain
-just `f' and `g', respectively.  Then `diff F G' outputs
-
-     1c1
-     < f
-     \ No newline at end of file
-     ---
-     > g
-     \ No newline at end of file
-
-(The exact message may differ in non-English locales.)  `diff -n F G'
-outputs the following without a trailing newline:
-
-     d1 1
-     a1 1
-     g
-
-`diff -e F G' reports two errors and outputs the following:
-
-     1c
-     g
-     .
-
-\1f
-File: diff.info,  Node: Comparing Directories,  Next: Adjusting Output,  Prev: Incomplete Lines,  Up: Top
-
-Comparing Directories
-*********************
-
-   You can use `diff' to compare some or all of the files in two
-directory trees.  When both file name arguments to `diff' are
-directories, it compares each file that is contained in both
-directories, examining file names in alphabetical order as specified by
-the `LC_COLLATE' locale category.  Normally `diff' is silent about
-pairs of files that contain no differences, but if you use the `-s' or
-`--report-identical-files' option, it reports pairs of identical files.
-Normally `diff' reports subdirectories common to both directories
-without comparing subdirectories' files, but if you use the `-r' or
-`--recursive' option, it compares every corresponding pair of files in
-the directory trees, as many levels deep as they go.
-
-   For file names that are in only one of the directories, `diff'
-normally does not show the contents of the file that exists; it reports
-only that the file exists in that directory and not in the other.  You
-can make `diff' act as though the file existed but was empty in the
-other directory, so that it outputs the entire contents of the file that
-actually exists.  (It is output as either an insertion or a deletion,
-depending on whether it is in the first or the second directory given.)
-To do this, use the `-N' or `--new-file' option.
-
-   If the older directory contains one or more large files that are not
-in the newer directory, you can make the patch smaller by using the
-`--unidirectional-new-file' option instead of `-N'.  This option is
-like `-N' except that it only inserts the contents of files that appear
-in the second directory but not the first (that is, files that were
-added).  At the top of the patch, write instructions for the user
-applying the patch to remove the files that were deleted before
-applying the patch.  *Note Making Patches::, for more discussion of
-making patches for distribution.
-
-   To ignore some files while comparing directories, use the `-x
-PATTERN' or `--exclude=PATTERN' option.  This option ignores any files
-or subdirectories whose base names match the shell pattern PATTERN.
-Unlike in the shell, a period at the start of the base of a file name
-matches a wildcard at the start of a pattern.  You should enclose
-PATTERN in quotes so that the shell does not expand it.  For example,
-the option `-x '*.[ao]'' ignores any file whose name ends with `.a' or
-`.o'.
-
-   This option accumulates if you specify it more than once.  For
-example, using the options `-x 'RCS' -x '*,v'' ignores any file or
-subdirectory whose base name is `RCS' or ends with `,v'.
-
-   If you need to give this option many times, you can instead put the
-patterns in a file, one pattern per line, and use the `-X FILE' or
-`--exclude-from=FILE' option.
-
-   If you have been comparing two directories and stopped partway
-through, later you might want to continue where you left off.  You can
-do this by using the `-S FILE' or `--starting-file=FILE' option.  This
-compares only the file FILE and all alphabetically later files in the
-topmost directory level.
-
-   If two directories differ only in that file names are lower case in
-one directory and upper case in the upper, `diff' normally reports many
-differences because it compares file names in a case sensitive way.
-With the `--ignore-file-name-case' option, `diff' ignores case
-differences in file names, so that for example the contents of the file
-`Tao' in one directory are compared to the contents of the file `TAO'
-in the other.  The `--no-ignore-file-name-case' option cancels the
-effect of the `--ignore-file-name-case' option, reverting to the default
-behavior.
-
-   If an `-x PATTERN', `--exclude=PATTERN', `-X FILE', or
-`--exclude-from=FILE' option is specified while the
-`--ignore-file-name-case' option is in effect, case is ignored when
-excluding file names matching the specified patterns.
-
-\1f
-File: diff.info,  Node: Adjusting Output,  Next: diff Performance,  Prev: Comparing Directories,  Up: Top
-
-Making `diff' Output Prettier
-*****************************
-
-   `diff' provides several ways to adjust the appearance of its output.
-These adjustments can be applied to any output format.
-
-* Menu:
-
-* Tabs::       Preserving the alignment of tab stops.
-* Pagination:: Page numbering and time-stamping `diff' output.
-
-\1f
-File: diff.info,  Node: Tabs,  Next: Pagination,  Up: Adjusting Output
-
-Preserving Tab Stop Alignment
-=============================
-
-   The lines of text in some of the `diff' output formats are preceded
-by one or two characters that indicate whether the text is inserted,
-deleted, or changed.  The addition of those characters can cause tabs to
-move to the next tab stop, throwing off the alignment of columns in the
-line.  GNU `diff' provides two ways to make tab-aligned columns line up
-correctly.
-
-   The first way is to have `diff' convert all tabs into the correct
-number of spaces before outputting them; select this method with the
-`-t' or `--expand-tabs' option.  `diff' assumes that tab stops are set
-every 8 print columns.  To use this form of output with `patch', you
-must give `patch' the `-l' or `--ignore-white-space' option (*note
-Changed White Space::, for more information).
-
-   The other method for making tabs line up correctly is to add a tab
-character instead of a space after the indicator character at the
-beginning of the line.  This ensures that all following tab characters
-are in the same position relative to tab stops that they were in the
-original files, so that the output is aligned correctly.  Its
-disadvantage is that it can make long lines too long to fit on one line
-of the screen or the paper.  It also does not work with the unified
-output format, which does not have a space character after the change
-type indicator character.  Select this method with the `-T' or
-`--initial-tab' option.
-
-\1f
-File: diff.info,  Node: Pagination,  Prev: Tabs,  Up: Adjusting Output
-
-Paginating `diff' Output
-========================
-
-   It can be convenient to have long output page-numbered and
-time-stamped.  The `-l' and `--paginate' options do this by sending the
-`diff' output through the `pr' program.  Here is what the page header
-might look like for `diff -lc lao tzu':
-
-     2002-02-22 14:20                 diff -lc lao tzu                 Page 1
-
-\1f
-File: diff.info,  Node: diff Performance,  Next: Comparing Three Files,  Prev: Adjusting Output,  Up: Top
-
-`diff' Performance Tradeoffs
-****************************
-
-   GNU `diff' runs quite efficiently; however, in some circumstances
-you can cause it to run faster or produce a more compact set of changes.
-
-   One way to improve `diff' performance is to use hard or symbolic
-links to files instead of copies.  This improves performance because
-`diff' normally does not need to read two hard or symbolic links to the
-same file, since their contents must be identical.  For example,
-suppose you copy a large directory hierarchy, make a few changes to the
-copy, and then often use `diff -r' to compare the original to the copy.
-If the original files are read-only, you can greatly improve
-performance by creating the copy using hard or symbolic links (e.g.,
-with GNU `cp -lR' or `cp -sR').  Before editing a file in the copy for
-the first time, you should break the link and replace it with a regular
-copy.
-
-   You can also affect the performance of GNU `diff' by giving it
-options that change the way it compares files.  Performance has more
-than one dimension.  These options improve one aspect of performance at
-the cost of another, or they improve performance in some cases while
-hurting it in others.
-
-   The way that GNU `diff' determines which lines have changed always
-comes up with a near-minimal set of differences.  Usually it is good
-enough for practical purposes.  If the `diff' output is large, you
-might want `diff' to use a modified algorithm that sometimes produces a
-smaller set of differences.  The `-d' or `--minimal' option does this;
-however, it can also cause `diff' to run more slowly than usual, so it
-is not the default behavior.
-
-   When the files you are comparing are large and have small groups of
-changes scattered throughout them, you can use the
-`--speed-large-files' option to make a different modification to the
-algorithm that `diff' uses.  If the input files have a constant small
-density of changes, this option speeds up the comparisons without
-changing the output.  If not, `diff' might produce a larger set of
-differences; however, the output will still be correct.
-
-   Normally `diff' discards the prefix and suffix that is common to
-both files before it attempts to find a minimal set of differences.
-This makes `diff' run faster, but occasionally it may produce
-non-minimal output.  The `--horizon-lines=LINES' option prevents `diff'
-from discarding the last LINES lines of the prefix and the first LINES
-lines of the suffix.  This gives `diff' further opportunities to find a
-minimal output.
-
-   Suppose a run of changed lines includes a sequence of lines at one
-end and there is an identical sequence of lines just outside the other
-end.  The `diff' command is free to choose which identical sequence is
-included in the hunk.  In this case, `diff' normally shifts the hunk's
-boundaries when this merges adjacent hunks, or shifts a hunk's lines
-towards the end of the file.  Merging hunks can make the output look
-nicer in some cases.
-
-\1f
-File: diff.info,  Node: Comparing Three Files,  Next: diff3 Merging,  Prev: diff Performance,  Up: Top
-
-Comparing Three Files
-*********************
-
-   Use the program `diff3' to compare three files and show any
-differences among them.  (`diff3' can also merge files; see *Note diff3
-Merging::).
-
-   The "normal" `diff3' output format shows each hunk of differences
-without surrounding context.  Hunks are labeled depending on whether
-they are two-way or three-way, and lines are annotated by their
-location in the input files.
-
-   *Note Invoking diff3::, for more information on how to run `diff3'.
-
-* Menu:
-
-* Sample diff3 Input::    Sample `diff3' input for examples.
-* Detailed diff3 Normal:: A detailed description of normal output format.
-* diff3 Hunks::           The format of normal output format.
-* Example diff3 Normal::  Sample output in the normal format.
-
-\1f
-File: diff.info,  Node: Sample diff3 Input,  Next: Detailed diff3 Normal,  Up: Comparing Three Files
-
-A Third Sample Input File
-=========================
-
-   Here is a third sample file that will be used in examples to
-illustrate the output of `diff3' and how various options can change it.
-The first two files are the same that we used for `diff' (*note Sample
-diff Input::).  This is the third sample file, called `tao':
-
-     The Way that can be told of is not the eternal Way;
-     The name that can be named is not the eternal name.
-     The Nameless is the origin of Heaven and Earth;
-     The named is the mother of all things.
-     
-     Therefore let there always be non-being,
-       so we may see their subtlety,
-     And let there always be being,
-       so we may see their result.
-     The two are the same,
-     But after they are produced,
-       they have different names.
-     
-       -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-
-\1f
-File: diff.info,  Node: Detailed diff3 Normal,  Next: diff3 Hunks,  Prev: Sample diff3 Input,  Up: Comparing Three Files
-
-Detailed Description of `diff3' Normal Format
-=============================================
-
-   Each hunk begins with a line marked `===='.  Three-way hunks have
-plain `====' lines, and two-way hunks have `1', `2', or `3' appended to
-specify which of the three input files differ in that hunk.  The hunks
-contain copies of two or three sets of input lines each preceded by one
-or two commands identifying where the lines came from.
-
-   Normally, two spaces precede each copy of an input line to
-distinguish it from the commands.  But with the `-T' or `--initial-tab'
-option, `diff3' uses a tab instead of two spaces; this lines up tabs
-correctly.  *Note Tabs::, for more information.
-
-   Commands take the following forms:
-
-`FILE:La'
-     This hunk appears after line L of file FILE, and contains no lines
-     in that file.  To edit this file to yield the other files, one
-     must append hunk lines taken from the other files.  For example,
-     `1:11a' means that the hunk follows line 11 in the first file and
-     contains no lines from that file.
-
-`FILE:Rc'
-     This hunk contains the lines in the range R of file FILE.  The
-     range R is a comma-separated pair of line numbers, or just one
-     number if the range is a singleton.  To edit this file to yield the
-     other files, one must change the specified lines to be the lines
-     taken from the other files.  For example, `2:11,13c' means that
-     the hunk contains lines 11 through 13 from the second file.
-
-   If the last line in a set of input lines is incomplete (*note
-Incomplete Lines::), it is distinguished on output from a full line by
-a following line that starts with `\'.
-
-\1f
-File: diff.info,  Node: diff3 Hunks,  Next: Example diff3 Normal,  Prev: Detailed diff3 Normal,  Up: Comparing Three Files
-
-`diff3' Hunks
-=============
-
-   Groups of lines that differ in two or three of the input files are
-called "diff3 hunks", by analogy with `diff' hunks (*note Hunks::).  If
-all three input files differ in a `diff3' hunk, the hunk is called a
-"three-way hunk"; if just two input files differ, it is a "two-way
-hunk".
-
-   As with `diff', several solutions are possible.  When comparing the
-files `A', `B', and `C', `diff3' normally finds `diff3' hunks by
-merging the two-way hunks output by the two commands `diff A B' and
-`diff A C'.  This does not necessarily minimize the size of the output,
-but exceptions should be rare.
-
-   For example, suppose `F' contains the three lines `a', `b', `f', `G'
-contains the lines `g', `b', `g', and `H' contains the lines `a', `b',
-`h'.  `diff3 F G H' might output the following:
-
-     ====2
-     1:1c
-     3:1c
-       a
-     2:1c
-       g
-     ====
-     1:3c
-       f
-     2:3c
-       g
-     3:3c
-       h
-
-because it found a two-way hunk containing `a' in the first and third
-files and `g' in the second file, then the single line `b' common to
-all three files, then a three-way hunk containing the last line of each
-file.
-
-\1f
-File: diff.info,  Node: Example diff3 Normal,  Prev: diff3 Hunks,  Up: Comparing Three Files
-
-An Example of `diff3' Normal Format
-===================================
-
-   Here is the output of the command `diff3 lao tzu tao' (*note Sample
-diff3 Input::, for the complete contents of the files).  Notice that it
-shows only the lines that are different among the three files.
-
-     ====2
-     1:1,2c
-     3:1,2c
-       The Way that can be told of is not the eternal Way;
-       The name that can be named is not the eternal name.
-     2:0a
-     ====1
-     1:4c
-       The Named is the mother of all things.
-     2:2,3c
-     3:4,5c
-       The named is the mother of all things.
-     
-     ====3
-     1:8c
-     2:7c
-         so we may see their outcome.
-     3:9c
-         so we may see their result.
-     ====
-     1:11a
-     2:11,13c
-       They both may be called deep and profound.
-       Deeper and more profound,
-       The door of all subtleties!
-     3:13,14c
-     
-         -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-
-\1f
-File: diff.info,  Node: diff3 Merging,  Next: Interactive Merging,  Prev: Comparing Three Files,  Up: Top
-
-Merging From a Common Ancestor
-******************************
-
-   When two people have made changes to copies of the same file,
-`diff3' can produce a merged output that contains both sets of changes
-together with warnings about conflicts.
-
-   One might imagine programs with names like `diff4' and `diff5' to
-compare more than three files simultaneously, but in practice the need
-rarely arises.  You can use `diff3' to merge three or more sets of
-changes to a file by merging two change sets at a time.
-
-   `diff3' can incorporate changes from two modified versions into a
-common preceding version.  This lets you merge the sets of changes
-represented by the two newer files.  Specify the common ancestor version
-as the second argument and the two newer versions as the first and third
-arguments, like this:
-
-     diff3 MINE OLDER YOURS
-
-You can remember the order of the arguments by noting that they are in
-alphabetical order.
-
-   You can think of this as subtracting OLDER from YOURS and adding the
-result to MINE, or as merging into MINE the changes that would turn
-OLDER into YOURS.  This merging is well-defined as long as MINE and
-OLDER match in the neighborhood of each such change.  This fails to be
-true when all three input files differ or when only OLDER differs; we
-call this a "conflict".  When all three input files differ, we call the
-conflict an "overlap".
-
-   `diff3' gives you several ways to handle overlaps and conflicts.
-You can omit overlaps or conflicts, or select only overlaps, or mark
-conflicts with special `<<<<<<<' and `>>>>>>>' lines.
-
-   `diff3' can output the merge results as an `ed' script that that can
-be applied to the first file to yield the merged output.  However, it
-is usually better to have `diff3' generate the merged output directly;
-this bypasses some problems with `ed'.
-
-* Menu:
-
-* Which Changes::            Selecting changes to incorporate.
-* Marking Conflicts::        Marking conflicts.
-* Bypassing ed::             Generating merged output directly.
-* Merging Incomplete Lines:: How `diff3' merges incomplete lines.
-* Saving the Changed File::  Emulating System V behavior.
-
-\1f
-File: diff.info,  Node: Which Changes,  Next: Marking Conflicts,  Up: diff3 Merging
-
-Selecting Which Changes to Incorporate
-======================================
-
-   You can select all unmerged changes from OLDER to YOURS for merging
-into MINE with the `-e' or `--ed' option.  You can select only the
-nonoverlapping unmerged changes with `-3' or `--easy-only', and you can
-select only the overlapping changes with `-x' or `--overlap-only'.
-
-   The `-e', `-3' and `-x' options select only "unmerged changes", i.e.
-changes where MINE and YOURS differ; they ignore changes from OLDER to
-YOURS where MINE and YOURS are identical, because they assume that such
-changes have already been merged.  If this assumption is not a safe
-one, you can use the `-A' or `--show-all' option (*note Marking
-Conflicts::).
-
-   Here is the output of the command `diff3' with each of these three
-options (*note Sample diff3 Input::, for the complete contents of the
-files).  Notice that `-e' outputs the union of the disjoint sets of
-changes output by `-3' and `-x'.
-
-   Output of `diff3 -e lao tzu tao':
-     11a
-     
-       -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-     .
-     8c
-       so we may see their result.
-     .
-
-   Output of `diff3 -3 lao tzu tao':
-     8c
-       so we may see their result.
-     .
-
-   Output of `diff3 -x lao tzu tao':
-     11a
-     
-       -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-     .
-
-\1f
-File: diff.info,  Node: Marking Conflicts,  Next: Bypassing ed,  Prev: Which Changes,  Up: diff3 Merging
-
-Marking Conflicts
-=================
-
-   `diff3' can mark conflicts in the merged output by bracketing them
-with special marker lines.  A conflict that comes from two files A and
-B is marked as follows:
-
-     <<<<<<< A
-     lines from A
-     =======
-     lines from B
-     >>>>>>> B
-
-   A conflict that comes from three files A, B and C is marked as
-follows:
-
-     <<<<<<< A
-     lines from A
-     ||||||| B
-     lines from B
-     =======
-     lines from C
-     >>>>>>> C
-
-   The `-A' or `--show-all' option acts like the `-e' option, except
-that it brackets conflicts, and it outputs all changes from OLDER to
-YOURS, not just the unmerged changes.  Thus, given the sample input
-files (*note Sample diff3 Input::), `diff3 -A lao tzu tao' puts
-brackets around the conflict where only `tzu' differs:
-
-     <<<<<<< tzu
-     =======
-     The Way that can be told of is not the eternal Way;
-     The name that can be named is not the eternal name.
-     >>>>>>> tao
-
-   And it outputs the three-way conflict as follows:
-
-     <<<<<<< lao
-     ||||||| tzu
-     They both may be called deep and profound.
-     Deeper and more profound,
-     The door of all subtleties!
-     =======
-     
-       -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-     >>>>>>> tao
-
-   The `-E' or `--show-overlap' option outputs less information than
-the `-A' or `--show-all' option, because it outputs only unmerged
-changes, and it never outputs the contents of the second file.  Thus
-the `-E' option acts like the `-e' option, except that it brackets the
-first and third files from three-way overlapping changes.  Similarly,
-`-X' acts like `-x', except it brackets all its (necessarily
-overlapping) changes.  For example, for the three-way overlapping
-change above, the `-E' and `-X' options output the following:
-
-     <<<<<<< lao
-     =======
-     
-       -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-     >>>>>>> tao
-
-   If you are comparing files that have meaningless or uninformative
-names, you can use the `-L LABEL' or `--label=LABEL' option to show
-alternate names in the `<<<<<<<', `|||||||' and `>>>>>>>' brackets.
-This option can be given up to three times, once for each input file.
-Thus `diff3 -A -L X -L Y -L Z A B C' acts like `diff3 -A A B C', except
-that the output looks like it came from files named `X', `Y' and `Z'
-rather than from files named `A', `B' and `C'.
-
-\1f
-File: diff.info,  Node: Bypassing ed,  Next: Merging Incomplete Lines,  Prev: Marking Conflicts,  Up: diff3 Merging
-
-Generating the Merged Output Directly
-=====================================
-
-   With the `-m' or `--merge' option, `diff3' outputs the merged file
-directly.  This is more efficient than using `ed' to generate it, and
-works even with non-text files that `ed' would reject.  If you specify
-`-m' without an `ed' script option, `-A' (`--show-all') is assumed.
-
-   For example, the command `diff3 -m lao tzu tao' (*note Sample diff3
-Input:: for a copy of the input files) would output the following:
-
-     <<<<<<< tzu
-     =======
-     The Way that can be told of is not the eternal Way;
-     The name that can be named is not the eternal name.
-     >>>>>>> tao
-     The Nameless is the origin of Heaven and Earth;
-     The Named is the mother of all things.
-     Therefore let there always be non-being,
-       so we may see their subtlety,
-     And let there always be being,
-       so we may see their result.
-     The two are the same,
-     But after they are produced,
-       they have different names.
-     <<<<<<< lao
-     ||||||| tzu
-     They both may be called deep and profound.
-     Deeper and more profound,
-     The door of all subtleties!
-     =======
-     
-       -- The Way of Lao-Tzu, tr. Wing-tsit Chan
-     >>>>>>> tao
-
-\1f
-File: diff.info,  Node: Merging Incomplete Lines,  Next: Saving the Changed File,  Prev: Bypassing ed,  Up: diff3 Merging
-
-How `diff3' Merges Incomplete Lines
-===================================
-
-   With `-m', incomplete lines (*note Incomplete Lines::) are simply
-copied to the output as they are found; if the merged output ends in an
-conflict and one of the input files ends in an incomplete line,
-succeeding `|||||||', `=======' or `>>>>>>>' brackets appear somewhere
-other than the start of a line because they are appended to the
-incomplete line.
-
-   Without `-m', if an `ed' script option is specified and an
-incomplete line is found, `diff3' generates a warning and acts as if a
-newline had been present.
-
-\1f
-File: diff.info,  Node: Saving the Changed File,  Prev: Merging Incomplete Lines,  Up: diff3 Merging
-
-Saving the Changed File
-=======================
-
-   Traditional Unix `diff3' generates an `ed' script without the
-trailing `w' and `q' commands that save the changes.  System V `diff3'
-generates these extra commands.  GNU `diff3' normally behaves like
-traditional Unix `diff3', but with the `-i' option it behaves like
-System V `diff3' and appends the `w' and `q' commands.
-
-   The `-i' option requires one of the `ed' script options `-AeExX3',
-and is incompatible with the merged output option `-m'.
-
-\1f
-File: diff.info,  Node: Interactive Merging,  Next: Merging with patch,  Prev: diff3 Merging,  Up: Top
-
-Interactive Merging with `sdiff'
-********************************
-
-   With `sdiff', you can merge two files interactively based on a
-side-by-side `-y' format comparison (*note Side by Side::).  Use `-o
-FILE' or `--output=FILE' to specify where to put the merged text.
-*Note Invoking sdiff::, for more details on the options to `sdiff'.
-
-   Another way to merge files interactively is to use the Emacs Lisp
-package `emerge'.  *Note emerge: (emacs)emerge, for more information.
-
-* Menu:
-
-* sdiff Option Summary:: Summary of `sdiff' options.
-* Merge Commands::       Merging two files interactively.
-
-\1f
-File: diff.info,  Node: sdiff Option Summary,  Next: Merge Commands,  Up: Interactive Merging
-
-Specifying `diff' Options to `sdiff'
-====================================
-
-   The following `sdiff' options have the same meaning as for `diff'.
-*Note diff Options::, for the use of these options.
-
-     -a -b -d -i -t -v
-     -B -E -I REGEXP
-     
-     --ignore-blank-lines  --ignore-case
-     --ignore-matching-lines=REGEXP  --ignore-space-change
-     --ignore-tab-expansion
-     --left-column  --minimal  --speed-large-files
-     --strip-trailing-cr  --suppress-common-lines  --expand-tabs
-     --text  --version  --width=COLUMNS
-
-   For historical reasons, `sdiff' has alternate names for some
-options.  The `-l' option is equivalent to the `--left-column' option,
-and similarly `-s' is equivalent to `--suppress-common-lines'.  The
-meaning of the `sdiff' `-w' and `-W' options is interchanged from that
-of `diff': with `sdiff', `-w COLUMNS' is equivalent to
-`--width=COLUMNS', and `-W' is equivalent to `--ignore-all-space'.
-`sdiff' without the `-o' option is equivalent to `diff' with the `-y'
-or `--side-by-side' option (*note Side by Side::).
-
-\1f
-File: diff.info,  Node: Merge Commands,  Prev: sdiff Option Summary,  Up: Interactive Merging
-
-Merge Commands
-==============
-
-   Groups of common lines, with a blank gutter, are copied from the
-first file to the output.  After each group of differing lines, `sdiff'
-prompts with `%' and pauses, waiting for one of the following commands.
-Follow each command with <RET>.
-
-`e'
-     Discard both versions.  Invoke a text editor on an empty temporary
-     file, then copy the resulting file to the output.
-
-`eb'
-     Concatenate the two versions, edit the result in a temporary file,
-     then copy the edited result to the output.
-
-`ed'
-     Like `eb', except precede each version with a header that shows
-     what file and lines the version came from.
-
-`el'
-     Edit a copy of the left version, then copy the result to the
-     output.
-
-`er'
-     Edit a copy of the right version, then copy the result to the
-     output.
-
-`l'
-     Copy the left version to the output.
-
-`q'
-     Quit.
-
-`r'
-     Copy the right version to the output.
-
-`s'
-     Silently copy common lines.
-
-`v'
-     Verbosely copy common lines.  This is the default.
-
-   The text editor invoked is specified by the `EDITOR' environment
-variable if it is set.  The default is system-dependent.
-
-\1f
-File: diff.info,  Node: Merging with patch,  Next: Making Patches,  Prev: Interactive Merging,  Up: Top
-
-Merging with `patch'
-********************
-
-   `patch' takes comparison output produced by `diff' and applies the
-differences to a copy of the original file, producing a patched
-version.  With `patch', you can distribute just the changes to a set of
-files instead of distributing the entire file set; your correspondents
-can apply `patch' to update their copy of the files with your changes.
-`patch' automatically determines the diff format, skips any leading or
-trailing headers, and uses the headers to determine which file to
-patch.  This lets your correspondents feed a mail message containing a
-difference listing directly to `patch'.
-
-   `patch' detects and warns about common problems like forward
-patches.  It saves any patches that it could not apply.  It can also
-maintain a `patchlevel.h' file to ensure that your correspondents apply
-diffs in the proper order.
-
-   `patch' accepts a series of diffs in its standard input, usually
-separated by headers that specify which file to patch.  It applies
-`diff' hunks (*note Hunks::) one by one.  If a hunk does not exactly
-match the original file, `patch' uses heuristics to try to patch the
-file as well as it can.  If no approximate match can be found, `patch'
-rejects the hunk and skips to the next hunk.  `patch' normally replaces
-each file F with its new version, putting reject hunks (if any) into
-`F.rej'.
-
-   *Note Invoking patch::, for detailed information on the options to
-`patch'.
-
-* Menu:
-
-* patch Input::            Selecting the type of `patch' input.
-* Revision Control::       Getting files from RCS, SCCS, etc.
-* Imperfect::              Dealing with imperfect patches.
-* Creating and Removing::  Creating and removing files with a patch.
-* Patching Time Stamps::   Updating time stamps on patched files.
-* Multiple Patches::       Handling multiple patches in a file.
-* patch Directories::      Changing directory and stripping directories.
-* Backups::                Whether backup files are made.
-* Backup Names::           Backup file names.
-* Reject Names::           Reject file names.
-* patch Messages::         Messages and questions `patch' can produce.
-* patch and POSIX::        Conformance to the POSIX standard.
-* patch and Tradition::    GNU versus traditional `patch'.
-
-\1f
-File: diff.info,  Node: patch Input,  Next: Revision Control,  Up: Merging with patch
-
-Selecting the `patch' Input Format
-==================================
-
-   `patch' normally determines which `diff' format the patch file uses
-by examining its contents.  For patch files that contain particularly
-confusing leading text, you might need to use one of the following
-options to force `patch' to interpret the patch file as a certain
-format of diff.  The output formats listed here are the only ones that
-`patch' can understand.
-
-`-c'
-`--context'
-     context diff.
-
-`-e'
-`--ed'
-     `ed' script.
-
-`-n'
-`--normal'
-     normal diff.
-
-`-u'
-`--unified'
-     unified diff.
-
-\1f
-File: diff.info,  Node: Revision Control,  Next: Imperfect,  Prev: patch Input,  Up: Merging with patch
-
-Revision Control
-================
-
-   If a nonexistent input file is under a revision control system
-supported by `patch', `patch' normally asks the user whether to get (or
-check out) the file from the revision control system.  Patch currently
-supports RCS, ClearCase and SCCS.  Under RCS and SCCS, `patch' also
-asks when the input file is read-only and matches the default version
-in the revision control system.
-
-   The `-g NUM' or `--get=NUM' affects access to files under supported
-revision control systems.  If NUM is positive, `patch' gets the file
-without asking the user; if zero, `patch' neither asks the user nor
-gets the file; and if negative, `patch' asks the user before getting
-the file.  The default value of NUM is given by the value of the
-`PATCH_GET' environment variable if it is set; if not, the default
-value is zero if `patch' is conforming to POSIX, negative otherwise.
-*Note patch and POSIX::.
-
-   The choice of revision control system is unaffected by the
-`VERSION_CONTROL' environment variable (*note Backup Names::).
-
-\1f
-File: diff.info,  Node: Imperfect,  Next: Creating and Removing,  Prev: Revision Control,  Up: Merging with patch
-
-Applying Imperfect Patches
-==========================
-
-   `patch' tries to skip any leading text in the patch file, apply the
-diff, and then skip any trailing text.  Thus you can feed a mail
-message directly to `patch', and it should work.  If the entire diff is
-indented by a constant amount of white space, `patch' automatically
-ignores the indentation.  If a context diff contains trailing carriage
-return on each line, `patch' automatically ignores the carriage return.
-If a context diff has been encapsulated by prepending `- ' to lines
-beginning with `-' as per Internet RFC 934
-(ftp://ftp.isi.edu/in-notes/rfc934.txt), `patch' automatically
-unencapsulates the input.
-
-   However, certain other types of imperfect input require user
-intervention or testing.
-
-* Menu:
-
-* Changed White Space:: When tabs and spaces don't match exactly.
-* Reversed Patches::    Applying reversed patches correctly.
-* Inexact::             Helping `patch' find close matches.
-* Dry Runs::            Predicting what `patch' will do.
-
-\1f
-File: diff.info,  Node: Changed White Space,  Next: Reversed Patches,  Up: Imperfect
-
-Applying Patches with Changed White Space
------------------------------------------
-
-   Sometimes mailers, editors, or other programs change spaces into
-tabs, or vice versa.  If this happens to a patch file or an input file,
-the files might look the same, but `patch' will not be able to match
-them properly.  If this problem occurs, use the `-l' or
-`--ignore-white-space' option, which makes `patch' compare blank
-characters (i.e. spaces and tabs) loosely so that any nonempty sequence
-of blanks in the patch file matches any nonempty sequence of blanks in
-the input files.  Non-blank characters must still match exactly.  Each
-line of the context must still match a line in the input file.
-
-\1f
-File: diff.info,  Node: Reversed Patches,  Next: Inexact,  Prev: Changed White Space,  Up: Imperfect
-
-Applying Reversed Patches
--------------------------
-
-   Sometimes people run `diff' with the new file first instead of
-second.  This creates a diff that is "reversed".  To apply such
-patches, give `patch' the `-R' or `--reverse' option.  `patch' then
-attempts to swap each hunk around before applying it.  Rejects come out
-in the swapped format.
-
-   Often `patch' can guess that the patch is reversed.  If the first
-hunk of a patch fails, `patch' reverses the hunk to see if it can apply
-it that way.  If it can, `patch' asks you if you want to have the `-R'
-option set; if it can't, `patch' continues to apply the patch normally.
-This method cannot detect a reversed patch if it is a normal diff and
-the first command is an append (which should have been a delete) since
-appends always succeed, because a null context matches anywhere.  But
-most patches add or change lines rather than delete them, so most
-reversed normal diffs begin with a delete, which fails, and `patch'
-notices.
-
-   If you apply a patch that you have already applied, `patch' thinks
-it is a reversed patch and offers to un-apply the patch.  This could be
-construed as a feature.  If you did this inadvertently and you don't
-want to un-apply the patch, just answer `n' to this offer and to the
-subsequent "apply anyway" question--or type `C-c' to kill the `patch'
-process.
-
-\1f
-File: diff.info,  Node: Inexact,  Next: Dry Runs,  Prev: Reversed Patches,  Up: Imperfect
-
-Helping `patch' Find Inexact Matches
-------------------------------------
-
-   For context diffs, and to a lesser extent normal diffs, `patch' can
-detect when the line numbers mentioned in the patch are incorrect, and
-it attempts to find the correct place to apply each hunk of the patch.
-As a first guess, it takes the line number mentioned in the hunk, plus
-or minus any offset used in applying the previous hunk.  If that is not
-the correct place, `patch' scans both forward and backward for a set of
-lines matching the context given in the hunk.
-
-   First `patch' looks for a place where all lines of the context
-match.  If it cannot find such a place, and it is reading a context or
-unified diff, and the maximum fuzz factor is set to 1 or more, then
-`patch' makes another scan, ignoring the first and last line of
-context.  If that fails, and the maximum fuzz factor is set to 2 or
-more, it makes another scan, ignoring the first two and last two lines
-of context are ignored.  It continues similarly if the maximum fuzz
-factor is larger.
-
-   The `-F LINES' or `--fuzz=LINES' option sets the maximum fuzz factor
-to LINES.  This option only applies to context and unified diffs; it
-ignores up to LINES lines while looking for the place to install a
-hunk.  Note that a larger fuzz factor increases the odds of making a
-faulty patch.  The default fuzz factor is 2; there is no point to
-setting it to more than the number of lines of context in the diff,
-ordinarily 3.
-
-   If `patch' cannot find a place to install a hunk of the patch, it
-writes the hunk out to a reject file (*note Reject Names::, for
-information on how reject files are named).  It writes out rejected
-hunks in context format no matter what form the input patch is in.  If
-the input is a normal or `ed' diff, many of the contexts are simply
-null.  The line numbers on the hunks in the reject file may be
-different from those in the patch file: they show the approximate
-location where `patch' thinks the failed hunks belong in the new file
-rather than in the old one.
-
-   If the `--verbose' option is given, then as it completes each hunk
-`patch' tells you whether the hunk succeeded or failed, and if it
-failed, on which line (in the new file) `patch' thinks the hunk should
-go.  If this is different from the line number specified in the diff,
-it tells you the offset.  A single large offset _may_ indicate that
-`patch' installed a hunk in the wrong place.  `patch' also tells you if
-it used a fuzz factor to make the match, in which case you should also
-be slightly suspicious.
-
-   `patch' cannot tell if the line numbers are off in an `ed' script,
-and can only detect wrong line numbers in a normal diff when it finds a
-change or delete command.  It may have the same problem with a context
-diff using a fuzz factor equal to or greater than the number of lines
-of context shown in the diff (typically 3).  In these cases, you should
-probably look at a context diff between your original and patched input
-files to see if the changes make sense.  Compiling without errors is a
-pretty good indication that the patch worked, but not a guarantee.
-
-   A patch against an empty file applies to a nonexistent file, and vice
-versa.  *Note Creating and Removing::.
-
-   `patch' usually produces the correct results, even when it must make
-many guesses.  However, the results are guaranteed only when the patch
-is applied to an exact copy of the file that the patch was generated
-from.
-
-\1f
-File: diff.info,  Node: Dry Runs,  Prev: Inexact,  Up: Imperfect
-
-Predicting what `patch' will do
--------------------------------
-
-   It may not be obvious in advance what `patch' will do with a
-complicated or poorly formatted patch.  If you are concerned that the
-input might cause `patch' to modify the wrong files, you can use the
-`--dry-run' option, which causes `patch' to print the results of
-applying patches without actually changing any files.  You can then
-inspect the diagnostics generated by the dry run to see whether `patch'
-will modify the files that you expect.  If the patch does not do what
-you want, you can modify the patch (or the other options to `patch')
-and try another dry run.  Once you are satisfied with the proposed
-patch you can apply it by invoking `patch' as before, but this time
-without the `--dry-run' option.
-
-\1f
-File: diff.info,  Node: Creating and Removing,  Next: Patching Time Stamps,  Prev: Imperfect,  Up: Merging with patch
-
-Creating and Removing Files
-===========================
-
-   Sometimes when comparing two directories, a file may exist in one
-directory but not the other.  If you give `diff' the `-N' or
-`--new-file' option, or if you supply an old or new file that is named
-`/dev/null' or is empty and is dated the Epoch (1970-01-01 00:00:00
-UTC), `diff' outputs a patch that adds or deletes the contents of this
-file.  When given such a patch, `patch' normally creates a new file or
-removes the old file.  However, when conforming to POSIX (*note patch
-and POSIX::), `patch' does not remove the old file, but leaves it empty.
-The `-E' or `--remove-empty-files' option causes `patch' to remove
-output files that are empty after applying a patch, even if the patch
-does not appear to be one that removed the file.
-
-   If the patch appears to create a file that already exists, `patch'
-asks for confirmation before applying the patch.
-
-\1f
-File: diff.info,  Node: Patching Time Stamps,  Next: Multiple Patches,  Prev: Creating and Removing,  Up: Merging with patch
-
-Updating Time Stamps on Patched Files
-=====================================
-
-   When `patch' updates a file, it normally sets the file's
-last-modified time stamp to the current time of day.  If you are using
-`patch' to track a software distribution, this can cause `make' to
-incorrectly conclude that a patched file is out of date.  For example,
-if `syntax.c' depends on `syntax.y', and `patch' updates `syntax.c' and
-then `syntax.y', then `syntax.c' will normally appear to be out of date
-with respect to `syntax.y' even though its contents are actually up to
-date.
-
-   The `-Z' or `--set-utc' option causes `patch' to set a patched
-file's modification and access times to the time stamps given in
-context diff headers.  If the context diff headers do not specify a
-time zone, they are assumed to use Coordinated Universal Time (UTC,
-often known as GMT).
-
-   The `-T' or `--set-time' option acts like `-Z' or `--set-utc',
-except that it assumes that the context diff headers' time stamps use
-local time instead of UTC.  This option is not recommended, because
-patches using local time cannot easily be used by people in other time
-zones, and because local time stamps are ambiguous when local clocks
-move backwards during daylight-saving time adjustments.  If the context
-diff headers specify a time zone, this option is equivalent to `-Z' or
-`--set-utc'.
-
-   `patch' normally refrains from setting a file's time stamps if the
-file's original last-modified time stamp does not match the time given
-in the diff header, of if the file's contents do not exactly match the
-patch.  However, if the `-f' or `--force' option is given, the file's
-time stamps are set regardless.
-
-   Due to the limitations of the current `diff' format, `patch' cannot
-update the times of files whose contents have not changed.  Also, if
-you set file time stamps to values other than the current time of day,
-you should also remove (e.g., with `make clean') all files that depend
-on the patched files, so that later invocations of `make' do not get
-confused by the patched files' times.
-
-\1f
-File: diff.info,  Node: Multiple Patches,  Next: patch Directories,  Prev: Patching Time Stamps,  Up: Merging with patch
-
-Multiple Patches in a File
-==========================
-
-   If the patch file contains more than one patch, and if you do not
-specify an input file on the command line, `patch' tries to apply each
-patch as if they came from separate patch files.  This means that it
-determines the name of the file to patch for each patch, and that it
-examines the leading text before each patch for file names and
-prerequisite revision level (*note Making Patches::, for more on that
-topic).
-
-   `patch' uses the following rules to intuit a file name from the
-leading text before a patch.  First, `patch' takes an ordered list of
-candidate file names as follows:
-
-   * If the header is that of a context diff, `patch' takes the old and
-     new file names in the header.  A name is ignored if it does not
-     have enough slashes to satisfy the `-pNUM' or `--strip=NUM'
-     option.  The name `/dev/null' is also ignored.
-
-   * If there is an `Index:' line in the leading garbage and if either
-     the old and new names are both absent or if `patch' is conforming
-     to POSIX, `patch' takes the name in the `Index:' line.
-
-   * For the purpose of the following rules, the candidate file names
-     are considered to be in the order (old, new, index), regardless of
-     the order that they appear in the header.
-
-Then `patch' selects a file name from the candidate list as follows:
-
-   * If some of the named files exist, `patch' selects the first name
-     if conforming to POSIX, and the best name otherwise.
-
-   * If `patch' is not ignoring RCS, ClearCase, and SCCS (*note
-     Revision Control::), and no named files exist but an RCS,
-     ClearCase, or SCCS master is found, `patch' selects the first
-     named file with an RCS, ClearCase, or SCCS master.
-
-   * If no named files exist, no RCS, ClearCase, or SCCS master was
-     found, some names are given, `patch' is not conforming to POSIX,
-     and the patch appears to create a file, `patch' selects the best
-     name requiring the creation of the fewest directories.
-
-   * If no file name results from the above heuristics, you are asked
-     for the name of the file to patch, and `patch' selects that name.
-
-   To determine the "best" of a nonempty list of file names, `patch'
-first takes all the names with the fewest path name components; of
-those, it then takes all the names with the shortest basename; of
-those, it then takes all the shortest names; finally, it takes the
-first remaining name.
-
-   *Note patch and POSIX::, to see whether `patch' is conforming to
-POSIX.
-
-\1f
-File: diff.info,  Node: patch Directories,  Next: Backups,  Prev: Multiple Patches,  Up: Merging with patch
-
-Applying Patches in Other Directories
-=====================================
-
-   The `-d DIRECTORY' or `--directory=DIRECTORY' option to `patch'
-makes directory DIRECTORY the current directory for interpreting both
-file names in the patch file, and file names given as arguments to
-other options (such as `-B' and `-o').  For example, while in a mail
-reading program, you can patch a file in the `/usr/src/emacs' directory
-directly from a message containing the patch like this:
-
-     | patch -d /usr/src/emacs
-
-   Sometimes the file names given in a patch contain leading
-directories, but you keep your files in a directory different from the
-one given in the patch.  In those cases, you can use the `-pNUMBER' or
-`--strip=NUMBER' option to set the file name strip count to NUMBER.
-The strip count tells `patch' how many slashes, along with the directory
-names between them, to strip from the front of file names.  A sequence
-of one or more adjacent slashes is counted as a single slash.  By
-default, `patch' strips off all leading directories, leaving just the
-base file names.
-
-   For example, suppose the file name in the patch file is
-`/gnu/src/emacs/etc/NEWS'.  Using `-p0' gives the entire file name
-unmodified, `-p1' gives `gnu/src/emacs/etc/NEWS' (no leading slash),
-`-p4' gives `etc/NEWS', and not specifying `-p' at all gives `NEWS'.
-
-   `patch' looks for each file (after any slashes have been stripped)
-in the current directory, or if you used the `-d DIRECTORY' option, in
-that directory.
-
-\1f
-File: diff.info,  Node: Backups,  Next: Backup Names,  Prev: patch Directories,  Up: Merging with patch
-
-Backup Files
-============
-
-   Normally, `patch' creates a backup file if the patch does not
-exactly match the original input file, because in that case the
-original data might not be recovered if you undo the patch with `patch
--R' (*note Reversed Patches::).  However, when conforming to POSIX,
-`patch' does not create backup files by default.  *Note patch and
-POSIX::.
-
-   The `-b' or `--backup' option causes `patch' to make a backup file
-regardless of whether the patch matches the original input.  The
-`--backup-if-mismatch' option causes `patch' to create backup files for
-mismatches files; this is the default when not conforming to POSIX.  The
-`--no-backup-if-mismatch' option causes `patch' to not create backup
-files, even for mismatched patches; this is the default when conforming
-to POSIX.
-
-   When backing up a file that does not exist, an empty, unreadable
-backup file is created as a placeholder to represent the nonexistent
-file.
-
-\1f
-File: diff.info,  Node: Backup Names,  Next: Reject Names,  Prev: Backups,  Up: Merging with patch
-
-Backup File Names
-=================
-
-   Normally, `patch' renames an original input file into a backup file
-by appending to its name the extension `.orig', or `~' if using `.orig'
-would make the backup file name too long.(1)  The `-z BACKUP-SUFFIX' or
-`--suffix=BACKUP-SUFFIX' option causes `patch' to use BACKUP-SUFFIX as
-the backup extension instead.
-
-   Alternately, you can specify the extension for backup files with the
-`SIMPLE_BACKUP_SUFFIX' environment variable, which the options override.
-
-   `patch' can also create numbered backup files the way GNU Emacs
-does.  With this method, instead of having a single backup of each file,
-`patch' makes a new backup file name each time it patches a file.  For
-example, the backups of a file named `sink' would be called,
-successively, `sink.~1~', `sink.~2~', `sink.~3~', etc.
-
-   The `-V BACKUP-STYLE' or `--version-control=BACKUP-STYLE' option
-takes as an argument a method for creating backup file names.  You can
-alternately control the type of backups that `patch' makes with the
-`PATCH_VERSION_CONTROL' environment variable, which the `-V' option
-overrides.  If `PATCH_VERSION_CONTROL' is not set, the
-`VERSION_CONTROL' environment variable is used instead.  Please note
-that these options and variables control backup file names; they do not
-affect the choice of revision control system (*note Revision Control::).
-
-   The values of these environment variables and the argument to the
-`-V' option are like the GNU Emacs `version-control' variable (*note
-Backup Names: (emacs)Backup Names., for more information on backup
-versions in Emacs).  They also recognize synonyms that are more
-descriptive.  The valid values are listed below; unique abbreviations
-are acceptable.
-
-`t'
-`numbered'
-     Always make numbered backups.
-
-`nil'
-`existing'
-     Make numbered backups of files that already have them, simple
-     backups of the others.  This is the default.
-
-`never'
-`simple'
-     Always make simple backups.
-
-   You can also tell `patch' to prepend a prefix, such as a directory
-name, to produce backup file names.  The `-B PREFIX' or
-`--prefix=PREFIX' option makes backup files by prepending PREFIX to
-them.  The `-Y PREFIX' or `--basename-prefix=PREFIX' prepends PREFIX to
-the last file name component of backup file names instead; for example,
-`-Y ~' causes the backup name for `dir/file.c' to be `dir/~file.c'.  If
-you use either of these prefix options, the suffix-based options are
-ignored.
-
-   If you specify the output file with the `-o' option, that file is
-the one that is backed up, not the input file.
-
-   Options that affect the names of backup files do not affect whether
-backups are made.  For example, if you specify the
-`--no-backup-if-mismatch' option, none of the options described in this
-section have any affect, because no backups are made.
-
-   ---------- Footnotes ----------
-
-   (1) A coding error in GNU `patch' version 2.5.4 causes it to always
-use `~', but this should be fixed in the next release.
-
-\1f
-File: diff.info,  Node: Reject Names,  Next: patch Messages,  Prev: Backup Names,  Up: Merging with patch
-
-Reject File Names
-=================
-
-   The names for reject files (files containing patches that `patch'
-could not find a place to apply) are normally the name of the output
-file with `.rej' appended (or `#' if if using `.rej' would make the
-backup file name too long).
-
-   Alternatively, you can tell `patch' to place all of the rejected
-patches in a single file.  The `-r REJECT-FILE' or
-`--reject-file=REJECT-FILE' option uses REJECT-FILE as the reject file
-name.
-
-\1f
-File: diff.info,  Node: patch Messages,  Next: patch and POSIX,  Prev: Reject Names,  Up: Merging with patch
-
-Messages and Questions from `patch'
-===================================
-
-   `patch' can produce a variety of messages, especially if it has
-trouble decoding its input.  In a few situations where it's not sure
-how to proceed, `patch' normally prompts you for more information from
-the keyboard.  There are options to produce more or fewer messages, to
-have it not ask for keyboard input, and to affect the way that file
-names are quoted in messages.
-
-* Menu:
-
-* More or Fewer Messages::    Controlling the verbosity of `patch'.
-* patch and Keyboard Input::  Inhibiting keyboard input.
-* patch Quoting Style::       Quoting file names in diagnostics.
-
-   `patch' exits with status 0 if all hunks are applied successfully, 1
-if some hunks cannot be applied, and 2 if there is more serious trouble.
-When applying a set of patches in a loop, you should check the exit
-status, so you don't apply a later patch to a partially patched file.
-
-\1f
-File: diff.info,  Node: More or Fewer Messages,  Next: patch and Keyboard Input,  Up: patch Messages
-
-Controlling the Verbosity of `patch'
-------------------------------------
-
-   You can cause `patch' to produce more messages by using the
-`--verbose' option.  For example, when you give this option, the
-message `Hmm...' indicates that `patch' is reading text in the patch
-file, attempting to determine whether there is a patch in that text,
-and if so, what kind of patch it is.
-
-   You can inhibit all terminal output from `patch', unless an error
-occurs, by using the `-s', `--quiet', or `--silent' option.
-
-\1f
-File: diff.info,  Node: patch and Keyboard Input,  Next: patch Quoting Style,  Prev: More or Fewer Messages,  Up: patch Messages
-
-Inhibiting Keyboard Input
--------------------------
-
-   There are two ways you can prevent `patch' from asking you any
-questions.  The `-f' or `--force' option assumes that you know what you
-are doing.  It causes `patch' to do the following:
-
-   * Skip patches that do not contain file names in their headers.
-
-   * Patch files even though they have the wrong version for the
-     `Prereq:' line in the patch;
-
-   * Assume that patches are not reversed even if they look like they
-     are.
-
-The `-t' or `--batch' option is similar to `-f', in that it suppresses
-questions, but it makes somewhat different assumptions:
-
-   * Skip patches that do not contain file names in their headers (the
-     same as `-f').
-
-   * Skip patches for which the file has the wrong version for the
-     `Prereq:' line in the patch;
-
-   * Assume that patches are reversed if they look like they are.
-
-\1f
-File: diff.info,  Node: patch Quoting Style,  Prev: patch and Keyboard Input,  Up: patch Messages
-
-`patch' Quoting Style
----------------------
-
-   When `patch' outputs a file name in a diagnostic message, it can
-format the name in any of several ways.  This can be useful to output
-file names unambiguously, even if they contain punctuation or special
-characters like newlines.  The `--quoting-style=WORD' option controls
-how names are output.  The WORD should be one of the following:
-
-`literal'
-     Output names as-is.
-
-`shell'
-     Quote names for the shell if they contain shell metacharacters or
-     would cause ambiguous output.
-
-`shell-always'
-     Quote names for the shell, even if they would normally not require
-     quoting.
-
-`c'
-     Quote names as for a C language string.
-
-`escape'
-     Quote as with `c' except omit the surrounding double-quote
-     characters.
-
-   You can specify the default value of the `--quoting-style' option
-with the environment variable `QUOTING_STYLE'.  If that environment
-variable is not set, the default value is `shell', but this default may
-change in a future version of `patch'.
-
-\1f
-File: diff.info,  Node: patch and POSIX,  Next: patch and Tradition,  Prev: patch Messages,  Up: Merging with patch
-
-`patch' and the POSIX Standard
-==============================
-
-   If you specify the `--posix' option, or set the `POSIXLY_CORRECT'
-environment variable, `patch' conforms more strictly to the POSIX
-standard, as follows:
-
-   * Take the first existing file from the list (old, new, index) when
-     intuiting file names from diff headers.&